正規表示式知識整理

2021-08-31 19:46:59 字數 1917 閱讀 3960

在正規表示式中,.是代表任一字元,.+是代表任意乙個或多個字元,括號代表括號中任一字元,[.]是代表 ". "號,[.]+是代表乙個或多個 ". "號,和\.+的意思是一樣的。 

正規表示式中()的作用和在數學中的很像,就是把括起來的內容當作乙個整體。 

的作用上面說了,,匹配前面的字元n次,匹配前面的字元n次或更多,匹配前面的字元最少n次,最多m次,如果n為0,可以不指定。

元字元描述

.點匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。

$匹配行結束符。例如正規表示式weasel$ 能夠匹配字串"he's a weasel"的末尾 

但是不能匹配字串"they are a bunch of weasels."

^匹配一行的開始。例如正規表示式^when in能夠匹配字串"when in the course of human events"的開始,但是不能匹配"what and when in the"

*匹配0或多個正好在它之前的那個字元。例如正規表示式。*意味著能夠匹配任意數量的任何字元。

\這是引用符,用來將這裡列出的這些元字元當作普通的字元來進行匹配。例如正規表示式\$被用來匹配美元符號,而不是行尾,類似的,正規表示式\.用來匹配點字元,而不是任何字元的萬用字元。

[ ] 

[c1-c2] 

[^c1-c2]

匹配括號中的任何乙個字元。例如正規表示式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括號中使用連字元-來指定字元的區間,例如正規表示式[0-9]可以匹配任何數字字元;還可以制定多個區間,例如正規表示式[a-za-z]可以匹配任何大小寫字母。另乙個重要的用法是「排除」,要想匹配除了指定區間之外的字元——也就是所謂的補集——在左邊的括號和第乙個字元之間使用^字元,例如正規表示式[^269a-z] 將匹配除了2、6、9和所有大寫字母之外的任何字元。

\< \>

匹配詞(word)的開始(\<)和結束(\>)。例如正規表示式\能夠匹配字串"for the wise"中的"the",但是不能匹配字串"otherwise"中的"the"。注意:這個元字元不是所有的軟體都支援的。

\( \)

將 \( 和 \) 之間的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域(乙個正規表示式中最多可以儲存9個),它們可以用 \1 到\9 的符號來引用。

|將兩個匹配條件進行邏輯「或」(or)運算。例如正規表示式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:這個元字元不是所有的軟體都支援的。

+匹配1或多個正好在它之前的那個字元。例如正規表示式9+匹配9、99、999等。注意:這個元字元不是所有的軟體都支援的。

?匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。

匹配指定數目的字元,這些字元是在它之前的表示式定義的。例如正規表示式a[0-9] 能夠匹配字元"a"後面跟著正好3個數字字元的串,例如a123、a348等,但是不匹配a1234。而正規表示式[0-9] 匹配連續的任意4個、5個或者6個數字字元。注意:這個元字元不是所有的軟體都支援的。

關於匹配和替換的示例

//如果rt中包含了表示數值意義的連續數字時,去除高位的字元「0」

string rt = "1002abc03d00405f060708009";

pattern p = pattern.compile("(?列印結果如下:

03 0 31002abc3d00405f060708009

00405 00 4051002abc3d405f060708009

060708009 0 607080091002abc3d405f60708009

1002abc3d405f60708009

正規表示式知識整理

正規表示式 元字元描述 限定符相關描述 標記?之前的字元為可選,有沒有都行。匹配 0個重複的在 號之前的字元,0 匹配 1個重複的 號前的字元,1 點運算子相關描述 匹配任意單個字元除了換行符。字元類相關描述 字元種類。匹配方括號內的任意字元。否定的字元種類。匹配除了方括號裡的任意字元。xyz 字符...

正規表示式整理

常見正規表示式驗證 d 整數 d 正整數 d 負整數 a za z0 9 數字和字元 不包含標點 u4e00 u9fa5 中文 0 9 0 9 浮點數 a za z0 9 a za z0 9 a za z0 9 郵箱位址 1 9 0 9 0 9 0 9xx 簡單判斷15位或18位身份證 1 9 0 ...

整理正規表示式

控制開頭 控制結尾 轉義序列 n新行 r回車 t製表符 a z 匹配所有的小寫字母 a z 匹配所有的大寫字母 a za z 匹配所有的字母 0 9 匹配所有的數字 0 9 匹配所有的數字,句號和減號 f r t n 匹配所有的白字元 前面曾經提到 表示字串的開頭,但它還有另外乙個含義。當在一組方括...