正規表示式

2021-09-02 10:10:49 字數 1598 閱讀 6241

平時需要用到比較少,但是一到關鍵時刻卻又需要,老是忘記 :cry: 。寫個備忘

[color=blue]元字元[/color]

常用元字元表:

字元 說明

. 匹配除換行符以外的任意字元

\w 匹配字母、數字、漢字、下劃線

\s 匹配任意空白符

\d 匹配數字

\b 匹配單詞的開頭或結尾

^ 匹配字串的開頭

$ 匹配字串的結尾

[color=blue]字元轉義[/color]

如果要查詢元字元本身,必須使用\來消除元字元的特殊意義。eg:c:\\windows 匹配 c:\windows

[color=blue]反義[/color]

字元 說明

\w匹配字母、數字、漢字、下劃線以外的任意字元

\s匹配任意不是空白的字元

\d匹配任意不是數字的字元

\b匹配不是單詞開頭或結尾的位置

[^x]

匹配除x以外的任意字元

[^aieou]

匹配除aieou以外的任意字元

[color=blue]重複[/color]

字元 說明

*重複0或多次

+重複1或多次

? 重複0或1次

重複n次

重複n到多次

重複n到m次

eg:[a-z]*: 匹配任意長度的小寫字母串 aa,ab,ac

[color=blue]分支條件[/color]

有幾種規則,當滿足其中任意一種規則時都可成功匹配,規則用 | 隔開

eg:0\d-\d|0\d-\d:匹配兩種號碼:1)三位區號+八位號碼 2)四位區號+七位號碼

[color=blue]分組[/color]

用小括號()來指定分組,預設分組號從1開始

eg:(24[0-5]|25[0-4]|[01]?\d\d?\.)(24[0-5]|25[0-4]|[01]?\d\d?) :匹配ip位址

常用分組語法:

符號 說明

(exp)

匹配exp,並捕獲文字到自動命名的分組

(?exp)

匹配exp,捕獲文字到命名為name的分組

(:exp)

匹配exp,不捕獲文字,也不分配組號

[color=blue]零寬斷言[/color]

符號說明

(?=exp)

匹配exp前面的位置

(?<=exp)

匹配exp後面的位置

(?!=exp)

匹配後面跟的不是exp的位置

(?匹配前面跟的不是exp的位置

eg:1)\b\w+(?=ing\b) i am singging while she is dancing 匹配 sing 和 danc

2)(\b?<=re)\w+\b reading a book 匹配 ading

[color=blue]貪婪和懶惰[/color]

字元 說明

*?重複任意次,但盡可能少重複

+?重複1或多次,但盡可能少重複

??重複0或1次,但盡可能少重複

?重複n到m次,但盡可能少重複

?重複n到多次,但盡可能少重複

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...