Java正規表示式

2020-07-16 10:05:09
正規表示式是一種可以用於模式匹配和替換的規範,一個正規表示式就是由普通的字元(如字元 a~z)以及特殊字元(元字元)組成的文字模式,它用以描述在查詢文字主體時待匹配的一個或多個字串。

正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。本文簡單了解一下如何使用正規表示式來操作字串。

元字元

正規表示式中含有一些具有特殊意義的字元,這些特殊字元稱為正規表示式的元字元。例如“d”表示 0~9 的任何一個數位,“d”就是元字元。正規表示式中有多種元字元,常用的元字元如表 1 所示。

表1 正規表示式常用的元字元
元字元 正規表示式的寫法 說明
. "." 代表任意一個字元
d "d" 代表 0~9 的任何一個數位
D "D" 代表任何一個非數位字元
s "s" 代表空白字元,如“t”和”n”
S "S" 代表非空白字元
W "W" 代表不可用於識別符號的字元
p {Lower} p {Lower} 代表小寫字母 {a~z}
p {Upper} p {Upper} 代表大寫字母 {A~Z}
p {ASCII} p {ASCII} ASCII 字元
p {Alpha} p {Alpha} 字母字元
p {Digit} p {Digit} 十進位制數位,即 [0~9]
p {Alnum} p {Alnum} 數位或字母字元
p {Punct} p {Punct} 標點符號:!"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~ 
p {Graph} p {Graph} 可見字元:[p{Alnum}p{Punct}]
p {Print} p {Print} 可列印字元:[p{Graph}x20]
p {Blank} p {Blank} 空格或製表符:[t]
p {Cntrl} p {Cntrl} 控制字元:[x00-x1Fx7F]

在正規表示式中,可以使用方括號括起來若干個字元來表示一個元字元。這個元字元可以代表方括號中的任何一個字元,例如字串“reg="a4"” “reg="b4"”和“reg="c4"”都是與“reg="[abc]4"”匹配的字串。

注意:在正規表示式中,“.”代表任何一個字元,因此如果想在正規表示式中使用普通意義的點字元,那麼必須使用跳脫字元。

限定符

正規表示式中允許使用限定修飾符來限定元字元出現的次數,例如,“B*”表示 B 字母可以在字串中出現零次或多次。正規表示式中可以使用多種限定符,如表 2 所示。

表2 正規表示式常用的限定符
限定符 ? * + {n} {n,} {n,m}
說明 零次或一次 零次或多次 一次或多次 正好出現 n 次 至少出現 n 次 出現 n~m 次