行的開始和結(jié)束 開始符號(hào):^ 結(jié)束符號(hào):$ 如:^cat 應(yīng)該理解為以c作為一行的第一個(gè)字符,緊接著是a,然后是t
例如:String str = "catabdcatdetfcat"
^cat : 驗(yàn)證該行以c開頭緊接著是a,然后是t
cat$ : 驗(yàn)證該行以t結(jié)尾倒數(shù)第二個(gè)字符為a倒數(shù)第三個(gè)字符為c
^cat$: 以c開頭接著是a->t然后是行結(jié)束:只有cat三個(gè)字母的數(shù)據(jù)行
^$ : 開頭之后馬上結(jié)束:空白行,不包括任何字符
^ : 行的開頭,可以匹配任何行,因?yàn)槊總€(gè)行都有行開頭
--------------------------------------------------------------------------------------------------------------
字符組:[]表示:"或" 如:[abc]:a或者b或者c
例如:String str = "My Name is YangKai";
a[mn] : 查找a后面是m或者n的單詞
[Nn][ag] : 查找N或者n后面是a或者g的單詞
--------------------------------------------------------------------------------------------------------------
字符組內(nèi)的連字符:- 表示:范圍從開始到結(jié)束,
連字符'-'只有出現(xiàn)在字符組內(nèi)部的時(shí)候才是連字符,其他情況只表示字符:"-"沒有特殊意義
如果字符'-'出現(xiàn)在字符組內(nèi)的第一個(gè)位置或者出現(xiàn)在字符組內(nèi)的脫字符"^"之后,則該字符不是連字符只是一個(gè)字符而已
例如:String num = "012C34A5B!#@$-%$^%&&*&(-)*)&6FR7GD89";
[2-6] : 查找2到6之間的數(shù)字
[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之間的字符和-
---------------------------------------------------------------------------------------------------------------
脫字符:^ :當(dāng)^出現(xiàn)在字符組內(nèi)的第一個(gè)位置時(shí)表示:排除,即:除了....之外的,
如果脫字符沒有在[]字符組的第一個(gè)位置,那么該^僅表示一個(gè)字符,沒有特殊意義
[^0-9] : 查找字符串中除數(shù)字外的字符
[^2-6A-R] : 查找字符串中除了2到6之間的數(shù)字和A-R之間的字符外的所有字符
[^-2-6A-R] : 查找字符串中除了2到6之間的數(shù)字和A-R之間的字符和"-"外的所有字符(此處"-"只是一個(gè)字符,沒有連字符的含義)
注意一下這種情況:
String str = "abcdabcd";
如果我們用表達(dá)式:d[^0-9] 只能匹配到字符串中的da,而不能匹配結(jié)尾處的d,因?yàn)榻Y(jié)尾處的d沒有任何東西讓脫字符^去排除
如果我們?cè)诮Y(jié)尾加上一個(gè)空格的話,就可以匹配到了
-----------------------------------------------------------------------------------------------------------------
用"."去匹配任意字符
例如:03/19/76 03-19-76 03.19.76 可以用03[-/.]19[-/.]76去匹配,同樣可以用03.19.76去匹配,但是03.19.76也可能匹配到
03-19A76,因?yàn)?."可以匹配任何字符
注意:如果"."放在字符組外面的話表示元字符,但是如果放在字符組里面,則表示一個(gè)普通的"."
posted on 2008-11-19 19:36
零全零美 閱讀(17750)
評(píng)論(7) 編輯 收藏 所屬分類:
正則表達(dá)式