正規表示式

2021-09-05 08:47:01 字數 3035 閱讀 6164

下面的關鍵字如果要出現在原字串中,可以使用\來轉義,比如stud\*y可以匹配stud*y

關鍵字

描述例項

++ 號代表前面的字元必須至少出現一次(1次或多次)。

runoo+b:可以匹配 runoob、runooob、runoooooob

** 號代表字元可以不出現,也可以出現一次或者多次(0次、或1次、或多次)

runoo*b:可以匹配 runob、runoob、runoooooob

?? 問號代表前面的字元最多隻可以出現一次(0次、或1次)。

「do(es)?」 可以匹配 「do」 、 「does」 中的 「does」 、 「doxy」 中的 「do」 。

^匹配輸入字串的開始位置,除非在方括號表示式中使用,此時它表示不接受該字元集合。要匹配 ^ 字元本身,請使用 ^。

$匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 『\n』 或 『\r』。要匹配 $ 字元本身,請使用 $。

( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 ( 和 )。

.匹配除換行符 \n 之外的任何單字元。要匹配 . ,請使用 . 。

[標記乙個中括號表示式的開始。要匹配 [,請使用 [。

\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 『n』 匹配字元 『n』。』\n』 匹配換行符。序列 『\『 匹配 「\」,而 『(『 則匹配 「(「。

用來確定前面的內容的重複出現的次數。

^a$:aaaa。 ^a$: aa,aaa或aaaa

是乙個非負整數。匹配確定的 n 次。

『o』 不能匹配 「bob」 中的 『o』,但是能匹配 「food」 中的兩個 o。

n 是乙個非負整數。至少匹配n 次。

『o』 不能匹配 「bob」 中的 『o』,但能匹配 「foooood」 中的所有 o。』o』 等價於 『o+』。』o』 則等價於 『o*』。

m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。

「o」 將匹配 「fooooood」 中的前三個 o。』o』 等價於 『o?』。請注意在逗號和兩個數之間不能有空格。

[xyz]

字元集合。匹配所包含的任意乙個字元。

『[abc]』 可以匹配 「plain」 中的 『a』。

[^xyz]

負值字元集合。匹配未包含的任意字元。

『[^abc]』 可以匹配 「plain」 中的』p』、』l』、』i』、』n』。

[a-z]

字元範圍。匹配指定範圍內的任意字元。

『[a-z]』 可以匹配 『a』 到 『z』 範圍內的任意小寫字母字元。[a-z] //匹配所有的大寫字母,[a-za-z] //匹配所有的字母

[^a-z]

負值字元範圍。匹配任何不在指定範圍內的任意字元。

『[^a-z]』 可以匹配任何不在 『a』 到 『z』 範圍內的任意字元。

\d匹配乙個數字字元。等價於 [0-9]。

\d匹配乙個非數字字元。等價於 [^0-9]

\w匹配字母、數字、下劃線。等價於』[a-za-z0-9_]』。

\w匹配非字母、數字、下劃線。等價於 『[^a-za-z0-9_]』。

(pattern)

匹配 pattern 並獲取這一匹配。所獲取的匹配可以從產生的 matches 集合得到

(?:pattern)

匹配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用。

『industr(?:y|ies) 就是乙個比 『industry|industries』 更簡略的表示式。

(?=pattern)

正向肯定預查(look ahead positive assert),在任何匹配pattern的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。

「windows(?=95|98|nt|2000)」能匹配」windows2000」中的」windows」,但不能匹配」windows3.1」中的」windows」。

(?!pattern)

正向否定預查(negative assert),在任何不匹配pattern的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。

例如」windows(?!95|98|nt|2000)」能匹配」windows3.1」中的」windows」,但不能匹配」windows2000」中的」windows」。

(?<=pattern)

反向(look behind)肯定預查,與正向肯定預查類似,只是方向相反。

「(?<=95|98|nt|2000)windows」能匹配」2000windows」中的」windows」,但不能匹配」3.1windows」中的」windows」。

(?反向否定預查,與正向否定預查類似,只是方向相反。

「(?表示式

描述^[1-9][0-9]$ 或者 ^[1-9][0-9]*$

所有的正整數

^[-]?[0-9]+.?[0-9]+$ 或者 ^-?[0-9]+.?[0-9]*$

所有的浮點數

^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d$

中國手機號碼正則校驗

^[a-za-z0-9-]+@[a-za-z0-9-]+(.[a-za-z0-9_-]+)+$

只允許英文本母、數字、下劃線、英文句號、以及中劃線組成的郵箱

^[a-za-z0-9\u4e00-\u9fa5]+@[a-za-z0-9-]+(.[a-za-z0-9-]+)+$

名稱允許漢字、字母、數字,網域名稱只允許英文網域名稱的郵箱

[1-9]\d(18|19|([23]\d))\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$)|([1-9]\d\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d$

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

非負整數 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正規表示式 編寫正規表示式

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