下面的關鍵字如果要出現在原字串中,可以使用關鍵字\
來轉義,比如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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...