正則表達式簡單知識

 

1,普通字符:字母,數字,漢字,下劃線等沒有特殊含義的字符,匹配時匹配與之相對應的一個字符(單字符匹配)。

 

2,轉義字符:

 

注意:表格最後一行都爲正則表達式中的特殊含義符號匹配時都要加 \ 

 

3,字符集合:

 

 

注意:能與多字符進行匹配,且相應的大寫爲相反的意思(如:\D 表示爲非數字)

 

4,自定義字符集合(方括號[ ] 表示可以匹配其中的任意一個字符,其中關係爲”或“

 

注意:當特殊符號被包含到 方括號[ ] 中將失去其本身的含義,除了 ^ 和 -  比較特殊;

1,當 ^ 放在最前面的時候表示非 如上面[^abc] 表示匹配 a,b,c之外的任意一個字符,但是如果將 ^ 放在中間如[a^b]則表示匹配a或^或b。因此只要^沒有放在最前面將不表示非的含義,如果非要將^放在最前面,有要其不表示非的含義可以加 \,如[\^ab] 表示匹配^或a或者b一個字符。

2,字符 - 與 ^ 差不多 ,只要不將 - 放在字符中間 就不表示 範圍 如果非要放在字符中 則 加 \

如[f\-k]表示匹配f或-或f。

 

 

5,量詞({ } 放在表達式後面):

 

例子:[a\-b]{2} 表示表達式[a\-b]重複出現兩次可以匹配到如:aaacc-bm-a aab

           [a\-b]{2,3}表示表達式[a\-b]重複出現兩到三次可以匹配到如:aaacc-bm-a aab

注意:當使用{m,n}量詞時,默認是貪婪模式(如:[a\-b]{1,2} 當匹配到字符串aaaaa時他將會採用儘可能多的匹配方式即貪婪模式aaaaa 即先匹配兩個aa再匹配兩個aa然後再匹配一個a,而非先匹配一個a然後又一個a又一個a... 即aaaaa. 前面說的一個又一個匹配的叫非貪婪模式,即匹配儘可能少的字符 即aaaaa 只需要在{}後面加上字符 ?即 [a\-b]{1,2}?. ? + * 後面不能加?)

 

 

 

 

6,字符邊界(零寬)

 

 

 

例子:^ab 匹配字符串

abdagdaffdafewhf

abghf

將整個字符串看成一個字符串然後匹配 最前面的ab

同理 hf$ 匹配到最後的 hf

\b 的用法:可以將其理解爲一個虛擬位置 而且該位置前面和後面的字符必須最多有一個\w(字符下劃線數字) 

 

 

 

 

7,選擇和分組

 

 

 

 

8,零寬斷言(一下表達式只是表示一個位置 即exp表達式位置前或則後面應該是什麼)

 

 

例子:\w+(?=ing)  匹配字符串:going doing playing 匹配字符串以ing結尾的(紅色部分)

           \w+(?!=ing) 與上面相反 匹配字符串不以ing結尾的

          (?<=go)ing 匹配字符串:going doing playing 匹配字符串以go開頭ing結尾的(紅色)           (?<!go)ing 相反 匹配不以go開頭 以ing結尾的 字符串。going doing playing

 

 

 

 

 

 

 

 

 

                                                                                                                                        (本文部分內容來自網上視頻 總結)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章