定位符\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次...