正規表示式
,又稱正規表示法
、常規表示法(英語
:regular expression,在**中常簡寫為regex、regexp或re)
。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的
字串。在很多
文字編輯器
裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。
正規表示式
由一些普通字元
和一些元字元
(metacharacters)組成。普通
字元包括大小寫的字母和數字,而
元字元則具有特殊的含義,我們下面會給予解釋。
字元組可以匹配[ ]中包含的
任意乙個
字元。雖然可以是任意乙個,但只能是乙個。
字元組支援由連字元「-」來表示乙個
範圍。當「-」前後構成範圍時,要求前面字元的碼位小於後面字元的碼位。
[^…] 排除型字元組。排除型字元組表示任意乙個未列出的字元,同樣只能是乙個。排除型字元組同樣支援由連字元「-」來表示乙個範圍。
表示式 說明[abc]
表示「a」或
「b」或
「c」
[^abc]
表示除了「a」或
「b」或
「c」外任意字元
[0-9]
表示0~9中任意乙個數字,等價於[0123456789]
[\u4e00-\u9fa5]
表示任意乙個漢字
[^a1<]
表示除「a」、
「1」、
「<」外的其它任意乙個字元
[^a-z]
表示除小寫字母外的任意乙個字元
[a-za-z]
表示從a到z
或從a到z
的字元[a-z&&[hij]]
表示h,i或j
(交)
例項:
「[0-9]」在匹配「windows 7」時,匹配成功,匹配的結果為「7」。
「[^inw]」在匹配「windows 7」時,匹配成功,匹配的結果為「d」。
「[a-z]」在匹配「123az」時,匹配成功,匹配的結果為「a」。
表示式 說明
\d 任意乙個數字,相當於[0-9],即0~9 中的任意乙個 \w
任意乙個字母或數字或下劃線,相當於[a-za-z0-9_] \s
任意空白字元,相當於[回車\r換行\n換頁\f tab\t] \d
任意乙個非數字字元,\d取反,相當於[^0-9] \w
\w取反,相當於[^a-za-z0-9_] \s
任意非空白字元,\s取反,相當於[^ \r\n\f\t\v]
例項: 「\w\s\d
」在匹配「
windows 7
」時,匹配成功,匹配的結果為「
s 7」。
表示式 說明
.匹配除了換行符 \n 以外的任意乙個字元
表示式 說明
^匹配字串開始的位置(包括\n \r後的位置),不匹配任何字元 $
匹配字串結束的位置(包括\n \r前的位置),不匹配任何字元 \b
匹配單詞邊界,不匹配任何字元 \b
匹配非單詞的邊界 \g
前乙個匹配的結束
例項:「^a」在匹配「cba」時,匹配失敗,因為表示式要求開始位置後面是字元「a」,而「cba」顯然是不滿足的。
「\d$」在匹配「123」時,匹配成功,匹配結果為「3」,這個表示式要求匹配結尾處的數字,如果結尾處不是數字,如「123abc」,則是匹配失敗的。
「er\b」在匹配「never」,匹配成功,匹配結果為「er」。匹配「verb」匹配失敗,er後不是詞的邊界。
表示式 說明
\r,\n
回車和換行 \\
匹配「\」本身
\^,\$,\.
分別匹配「^」、「$」和「.」
表示式 說明
舉例
表示式匹配m次
「\d」相當於「\d\d\d 」
「(abc)」相當於「abcabc」
表示式匹配最少m次,最多n次
「\d」可以匹配「12」或「321」等2到3位的數字
表示式至少匹配m次
「[a-z]」表示至少8位以上的字母 ?
表示式匹配0次或1次,相當於
「ab?」可以匹配「a」或「ab」 *
表示式匹配0次或任意多次,相當於
「<[^>]*>」中「[^>]*」表示0個或任意多個不是「>」的字元 +
表示式匹配1次或意多次,至少1次,相當於
「\d\s+\d」表示兩個數字中間,至少有乙個以上的空白字元
表示式 說明
|多個子表示式之間取「或」
的關係xy
y跟在x後面
(x)捕獲組
例項:「^aa|b$」在匹配「cccb」時,是可以匹配成功的,匹配的結果是「b」,因為這個表示式表示匹配「^aa」或「b$」,而「b$」在匹配「cccb 」時是可以匹配成功的。
「^(aa|b)$」在區配「cccb」時,是匹配失敗的,因為這個表示式表示在「開始」和「結束」位置之間只能是「aa」或「b」,而「cccb」顯然是不滿足的。
正規表示式 1 正規表示式基礎
1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...
正規表示式基礎
限定符 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹配非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 匹配正浮點數 d...
正規表示式基礎
元字元 描述 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾,但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如正規...