正則表達式學習筆記 行的開始和結束、字符組、連字符、脫字符、用"."去匹配任意字符
行的開始和結束 開始符號:^ 結束符號:$ 如:^cat 應該理解為以c作為一行的第一個字符,緊接著是a,然後是t
例如:String str = "catabdcatdetfcat"
^cat : 驗證該行以c開頭緊接著是a,然後是t
cat$ : 驗證該行以t結尾倒數第二個字符為a倒數第三個字符為c
^cat$: 以c開頭接著是a->t然後是行結束:隻有cat三個字母的數據行
^$ : 開頭之後馬上結束:空白行,不包括任何字符
^ : 行的開頭,可以匹配任何行,因為每個行都有行開頭
--------------------------------------------------------------------------------------------------------------
字符組:[]表示:"或" 如:[abc]:a或者b或者c
例如:String str = "My Name is YangKai";
a[mn] : 查找a後麵是m或者n的單詞
[Nn][ag] : 查找N或者n後麵是a或者g的單詞
--------------------------------------------------------------------------------------------------------------
字符組內的連字符:- 表示:範圍從開始到結束,
連字符'-'隻有出現在字符組內部的時候才是連字符,其他情況隻表示字符:"-"沒有特殊意義
如果字符'-'出現在字符組內的第一個位置或者出現在字符組內的脫字符"^"之後,則該字符不是連字符隻是一個字符而已
例如:String num = "012C34A5B!#@$-%$^%&&*&(-)*)&6FR7GD89";
[2-6] : 查找2到6之間的數字
[A-R] : 查找從A到R之間的字符
[2-6A-R] : 查找從2到6從A到R之間的字符
[2-6A-R!@^&*] : 查找從2到6從A到R之間的字符和!@^&*等特殊字符
[-2-6A-R] :查找從2到6從A到R之間的字符和-
---------------------------------------------------------------------------------------------------------------
脫字符:^ :當^出現在字符組內的第一個位置時表示:排除,即:除了....之外的,
如果脫字符沒有在[]字符組的第一個位置,那麼該^僅表示一個字符,沒有特殊意義
[^0-9] : 查找字符串中除數字外的字符
[^2-6A-R] : 查找字符串中除了2到6之間的數字和A-R之間的字符外的所有字符
[^-2-6A-R] : 查找字符串中除了2到6之間的數字和A-R之間的字符和"-"外的所有字符(此處"-"隻是一個字符,沒有連字符的含義)
注意一下這種情況:
String str = "abcdabcd";
如果我們用表達式:d[^0-9] 隻能匹配到字符串中的da,而不能匹配結尾處的d,因為結尾處的d沒有任何東西讓脫字符^去排除
如果我們在結尾加上一個空格的話,就可以匹配到了
-----------------------------------------------------------------------------------------------------------------
用"."去匹配任意字符
例如:03/19/76 03-19-76 03.19.76 可以用03[-/.]19[-/.]76去匹配,同樣可以用03.19.76去匹配,但是03.19.76也可能匹配到
03-19A76,因為"."可以匹配任何字符
注意:如果"."放在字符組外麵的話表示元字符,但是如果放在字符組裏麵,則表示一個普通的"."
最後更新:2017-04-02 00:06:41