1、什麼是正規表示式?
正規表示式的定義:這是一種字串的語法規則,是一種可以用於模式匹配和替換的規則,主要用於文字和字串的處理(匹配,查詢,替換,判斷字串)。乙個正規表示式是由普通的字元(a~z)以及特殊字元(元字元)組成的文字模式,用以描述在查詢文字主體時待匹配的乙個或多個字串。下面我們會介紹一些常用的元字元2、正規表示式的元字元
元字元的定義:元字元:元字元使得正規表示式具有處理能力,指的是那些在正規表示式中具有特殊意義的專用字元,可以規定其前導字元在目標物件中的出現模式元字元
在正規表示式中的寫法意義.
.任何乙個字元
\d\\d
0-9之間的任意乙個數字
\d\\d
任何乙個非數字字元
\s\\s
空格類字元』\t』,』\n』等等
\s\\s
非空格類字元
\w\\w
可用於識別符號的字元,不包括美元符
\w\\w
不能可用於識別符號的字元
\p\\p[lower]
小寫字母[a~z]
\p\\p
大寫字母[a~z]
\p\\p
ascii字元
\p\\p
字母\p
\\p數字字元[0~9]
\p\\p
字母或數字
\p\\p
標點符號
\p\\p
可視字元,\p,\p
\p\\p
可列印字元
\p\\p
空格或製表符
\p\\p
控制字元[\x00~\x1f\x7f]
上面的表中,基本上就是一些比較常用的元字元,我們需要注意元字元在正規表示式中的寫法,不能直接用元字元來編寫我們的正則程式
3、正規表示式中的方括號
元字元可以是放在中的任意單個字元(如[a]表示匹配單個小寫字元a),也可以是字串行(如[a-d]表示匹配a-d即a,b,c,d中的任意乙個字元,而\w表示任意英文本母、數字及下劃線)。例如:regex=」[159]abc」,那麼」1abc」,」5abc」,」9abc」都是與正規表示式regex匹配的字元,方括號的含義如下:注:方括號內允許巢狀,可以進行交,並,差運算
方括號表示式
含義[abcde]
匹配a,b,c,d,e中的任意乙個字元
[a-h]
匹配a到h之間的任意乙個字元
[^fgh]
匹配除f,g,h外的任意乙個字元
[a-d[m-p]]
代表a~d,或m~p中的任意乙個字元(並)
[a-z&&[def]]
代表d,e或f中的任意乙個字串(交)
[a-z&&[^bc]]
代表a,d,e,f(差)
4、正規表示式中的限定符
在使用正規表示式時,我們知道元字元一般只能匹配乙個位置或乙個字元,如果需要某一型別的元字元多次輸入,逐個輸入,或是要匹配多個字元的時候就相當麻煩,這個時候我們可以使用正規表示式的限定符來重複輸入。例如:regex=」hello[246]?」,那麼」hello」,」hello2」,」hello4」,」hello6」都是與regex匹配的字串,下面是一些常見的限定符帶限定符號的模式
含義x?
x出現0次或1次
x*x出現0次或多次
x+x出現1次或多次
xx出現n次
xx至少出現n次
xx至少出現n至m次
xyx後面跟y
x|yx或y
string regex="自己定義的正規表示式";
string test="需要正則的字串物件";
boolean ismatch=test.matches(regex);
if(ismatch)else
可能有些人會說,我經常用到的正規表示式中有pattern和matcher兩個類,這兩個類是幹嘛的呢?
pattern: 乙個pattern是乙個正規表示式經編譯後的表現模式。好了,上述就是前兩天啃書所獲得的經驗值,不得不說書還是個非常好的東西。matcher: 乙個matcher物件是乙個狀態機器,它依據pattern物件做為匹配模式對字串展開匹配檢查。
首先乙個pattern例項訂製了乙個所用語法與perl的類似的正規表示式經編譯後的模式,然後乙個matcher例項在這個給定的pattern例項的模式控制下進行字串的匹配工作。
Java正規表示式詳解
正規表示式可以說是用來處理字串的一把利器,它是乙個專門匹配n個字串的字串模板,本質是查詢和替換。在例項演示之前先了解一下pattern matcher這兩個工具類.pattern 編譯好的帶匹配的模板 如 pattern.compile a z 取2個小寫字母 matcher 匹配目標字串後產生的結...
Java正規表示式詳解
表一顯示了表示匹配次數的符號,這些符號用來確定緊靠該符號左邊的符號出現的次數 假設我們要在文字檔案中搜尋美國的社會安全號碼。這個號碼的格式是999 99 9999。用來匹配它的正規表示式如圖一所示。在正規表示式中,連字元 有著特殊的意義,它表示乙個範圍,比如從0到9。因此,匹配社會安全號碼中的連字符...
Java正規表示式
正規表示式結構簡介 字元 x 字元 x 反斜槓 0n 十進位制數 0 n 7 0nn 十進位制數 0nn 0 n 7 0mnn 十進位制數 0mnn 0 m 3,0 n 7 xhh 十六進製制數 0xhh uhhhh 十六進製制數 0xhhhh t 製表符 u0009 n 換行符 u000a r 回...