正規表示式

2021-08-18 10:56:42 字數 2010 閱讀 8326

特殊字元

特別字元

描述( )

標記乙個子表示式的開始和結束位置。

.匹配除換行符 \n 之外的任何單字元。

[xyz]

字元集合。

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

例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^xyz]

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

例如, '[^abc]' 可以匹配 "plain" 中的'p'、'l'、'i'、'n'。

[a-z]

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

例如,'[a-z]' 可以匹配 'a' 到 'z' 範圍內的任意小寫字母字元。

[^a-z]

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

例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 範圍內的任意字元。

\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。

或 或 

共6種。 字元

描述*匹配前面的子表示式零次或多次。

例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於。

+匹配前面的子表示式一次或多次。

例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 。

?匹配前面的子表示式零次或一次。

例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等價於 。

n 是乙個非負整數。匹配確定的 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?'。請注意在逗號和兩個數之間不能有空格。

定位符字元描述

^匹配輸入字串開始的位置。

$匹配輸入字串結尾的位置。

\b匹配乙個字邊界,即字與空格間的位置。

例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

\b非字邊界匹配。

例如,'er\b' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

示例正規表示式

描述/\b([a-z]+) \1\b/gi

乙個單詞連續出現的位置。

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

將乙個url解析為協議、域、埠及相對路徑。

例如:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

email位址

^[a-za-z][a-za-z0-9_]$

帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線)

\d+\.\d+\.\d+\.\d+

ip位址

/^(?:chapter|section) [1-9][0-9]$/

定位章節的位置。

/ter\b/

可匹配chapter,而不能匹配terminal。

/\bapt/

可匹配chapter,而不能匹配aptitude。

/windows(?=95 |98 |nt )/

可匹配windows95或windows98或windowsnt,當找到乙個匹配後,從windows後面開始進行下一次的檢索匹配。

/^\s*$/

匹配空行。

/\d-\d/

驗證由兩位數字、乙個連字元再加 5 位數字組成的 id 號。

/<\s*(\s+)(\s[^>]*)?>[\s\s]*<\s*\/\1\s*>/

匹配 html 標記。

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

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

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