行的開始和結束 開始符號:^ 結束符號:$ 如:^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,因為"."可以匹配任何字符
注意:如果"."放在字符組外面的話表示元字符,但是如果放在字符組里面,則表示一個普通的"."
posted on 2008-11-19 19:36
零全零美 閱讀(17750)
評論(7) 編輯 收藏 所屬分類:
正則表達式