正規表示式知識點整理

2022-03-14 11:23:30 字數 2463 閱讀 6435

定位符\b

匹配單詞的開始或結束

\b匹配不是單詞開頭或結

束的位置

^匹配字串的開始

$匹配字串的結束

內容匹配

\w匹配字母或數字或下劃

線或漢字

\w匹配非字母或數字或下

劃線或漢字的字元

\d匹配數字

\d匹配非數字

\s匹配任意的空白符

\s匹配任何非空白字元

.匹配除換行符以外的

任意字元

\f匹配乙個換頁符

\n匹配乙個換行符

\r匹配乙個回車符

\t匹配乙個製表符

\v匹配乙個垂直製表符

數量匹配

*重複零次或更多次

?重複零次或一次

+重複一次或更多次

重複n次

重複n次,或更多

重複n到m次

可選項匹配

[abc]

匹配中任何乙個

字元[0-9a-z]

匹配0-9或a-z中任

何乙個字元

[^0-9]

匹配0-9以外任何

乙個字元

分支條件

|分支條件(或邏輯)

使用分枝條件時,要注意各個條件的順序。

邏輯較為嚴格匹配表示式應該放在前面

。匹配時,

將會從左到右地測試每個條件,

如果滿足了某個分枝的話,就不會去再管

其它的條件了。

分組()

可以用小括號來指

定子表示式(分組)

對於子表示式可以去統一制定迴圈次數

向後引用

(exp)

匹配exp,並捕獲文

本到自動命名的組裡

引用方式:\index  index 為從

左到右分配的組號

(?exp)

匹配exp,並捕獲文字

到名稱為name的組裡

,也可以寫成

(?'name'exp)

\k(?:exp)

匹配exp,不捕獲匹配

的文字,也不給此分

組分配組號

零寬斷言

(?=exp)

匹配exp前面的位置

[描述 exp與前面部

分的關係]

例如:\b\w+(?=ing\b)  先找到ing\b匹配的位置,

然後再以ing\b為結尾判斷\b\w+匹配的內容

(?<=exp)

匹配exp後面的位置

[描述 exp與後面部

分的關係]

例如:(?<=\bre)\w+\b  先找到\bre匹配的位置,

然後再以\bre為開頭判斷\w+\b匹配的內容

負向零寬斷言

(?!exp)

匹配後面跟的不是

exp的位置[描述exp

與前面部分的關係]

例如:\d(?!\d)

先找到\d匹配的字串,

然後判斷它後面的內容不匹配\d

(?匹配前面不是exp的

位置[描述 exp與

後面部分的關係]

例如:(?

注釋(?#注釋文字)

括號內的內容為注釋

#注釋文字

當前這一行,#之後

的內容全部為注釋

貪婪與懶惰

貪婪匹配:正規表示式中包含能接受重複的限定符時,通常的行為是(在使整個表示式能得到匹配的前提下)

匹配盡可能多的字元。

匹配優先順序:正規表示式有另一條規則,比懶惰/貪婪規則的優先順序更高:最先開始的匹配擁有最高的優先權

*?重複任意次,但盡

可能少重複

+?重複1次或更多次,

但盡可能少重複

??重複0次或1次,

但盡可能少重複

?重複n到m次,

但盡可能少重複

?重複n次以上,

但盡可能少重複

處理選項(.net支援)

ignorecase(忽略大小寫)

匹配時不區分大小寫。

multiline(多行模式)

更改^和$的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在

整個字串的開頭和結尾匹配。(在此模式下,$的精確含意是:匹配\n之

前的位置以及字串結束前的位置.)

singleline(單行模式)

更改.的含義,使它與每乙個字元匹配(包括換行符\n)。

ignorepatternwhitespace(忽略空白)

忽略表示式中的非轉義空白啟用由#標記的注釋。

explicitcapture(顯式捕獲)

僅捕獲已被顯式命名的組。

如:regex regex = new

regex(@"\ba\w\b", regexoptions.ignorecase);

注:多行模式和單行模式可同時啟用,這兩個選項之間沒有任何關係,除了它們的名字比較相似。

正規表示式知識點整理

匹配任何乙個單個字元 字母 數字,包括 本身 定義字元集合,可匹配集合中的任何乙個。字元區間可以用 來定義。取非匹配,匹配字元集合外的任何乙個 取或匹配,可匹配其中任意乙個 轉義字元 f 換頁符 n 換行符 r 回車符 t 製表符 v 垂直製表符 r n文字行結束標籤 r n r n匹配兩行之間的空...

corn表示式知識點整理

cron表示式是乙個字串,字串以5或6個空格隔開,分開共6個或7個域,每乙個域代表乙個含義,cron有如下兩種語法 格式 seconds minutes hours dayofmonth month dayofweek year 或 seconds minutes hours dayofmonth ...

正規表示式知識整理

在正規表示式中,是代表任一字元,是代表任意乙個或多個字元,括號代表括號中任一字元,是代表 號,是代表乙個或多個 號,和 的意思是一樣的。正規表示式中 的作用和在數學中的很像,就是把括起來的內容當作乙個整體。的作用上面說了,匹配前面的字元n次,匹配前面的字元n次或更多,匹配前面的字元最少n次,最多m次...