正規表示式基礎知識

2021-06-26 13:13:24 字數 2317 閱讀 9491

常用的元字元

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

\s匹配任意的空白符

\d匹配數字

\b匹配單詞的開始或結束

^匹配字串的開始

$匹配字串的結束

常用的限定符

*重複零次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多次

重複n到m次

\(?0\d[) -]?\d 匹配幾種格式的**號碼,像(010)88886666,或022-22334455,或02912345678等

常用的反義**

\w匹配任意不是字母,數字,下劃線,漢字的字元

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

\d匹配任意非數字的字元

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

[^x]匹配除了x以外的任意字元

[^aeiou]匹配除了aeiou這幾個字母以外的任意字元

]+>匹配用尖括號括起來的以a開頭的字串。

常用分組語法

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

(?exp)匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)

(?:exp)匹配exp,不捕獲匹配的文字,也不給此分組分配組號

零寬斷言(?=exp)匹配exp前面的位置

(?<=exp)匹配exp後面的位置

(?!exp)匹配後面跟的不是exp的位置

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

注釋(?#comment)這種型別的分組不對正規表示式的處理產生任何影響,用於提供注釋讓人閱讀

小括號的另一種用途是通過語法(?#comment)來包含注釋。

(?<=    # 斷言要匹配的文字的字首

<(\w+)> # 查詢尖括號括起來的字母或數字(即html/xml標籤)

)       # 字首結束

.*      # 匹配任意文字

(?=     # 斷言要匹配的文字的字尾

<\/\1>  # 查詢尖括號括起來的內容:前面是乙個"/",後面是先前捕獲的標籤

)       # 字尾結束

懶惰限定符

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

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

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

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

?重複n次以上,但盡可能少重複

<                         #最外層的左括號

[^<>]*                #最外層的左括號後面的不是括號的內容((

(?'open'<)    #碰到了左括號,在黑板上寫乙個"open"

[^<>]*       #匹配左括號後面的不是括號的內容)+(

(?'-open'>)   #碰到了右括號,擦掉乙個"open"

[^<>]*        #匹配右括號後面不是括號的內容

)+)*

(?(open)(?!))         #在遇到最外層的右括號前面,判斷黑板上還有沒有沒擦掉的"open";如果還有,則匹配失敗

>                         #最外層的右括號

\a報警字元(列印它的效果是電腦嘀一聲)

\b通常是單詞分界位置,但如果在字元類裡使用代表退格

\t製表符,tab

\r回車

\v豎向製表符

\f換頁符

\n換行符

\eescape

\0nnascii**中八進位制**為nn的字元

\xnnascii**中十六進製制**為nn的字元

\unnnnunicode**中十六進製制**為nnnn的字元

\cnascii控制字元。比如\cc代表ctrl+c

\a字串開頭(類似^,但不受處理多行選項的影響)

\z字串結尾或行尾(不受處理多行選項的影響)

\z字串結尾(類似$,但不受處理多行選項的影響)

\g當前搜尋的開頭

\punicode中命名為name的字元類,例如\p

(?>exp)貪婪子表示式

(?-exp)平衡組

(?im-nsx:exp)在子表示式exp中改變處理選項

(?im-nsx)為表示式後面的部分改變處理選項

(?(exp)yes|no)把exp當作零寬正向先行斷言,如果在這個位置能匹配,使用yes作為此組的表示式;否則使用no

(?(exp)yes)同上,只是使用空表示式作為no

(?(name)yes|no)如果命名為name的組捕獲到了內容,使用yes作為表示式;否則使用no

(?(name)yes)同上,只是使用空表示式作為no

正規表示式基礎知識

我們先從簡單的開始。假設你要搜尋乙個包含字元 cat 的字串,搜尋用的正規表示式就是 cat 如果搜尋對大小寫不敏感,單詞 catalog catherine sophisticated 都可以匹配。也就是說 1.1 句點符號 假設你在玩英文拼字遊戲,想要找出三個字母的單詞,而且這些單詞必須以 t ...

正規表示式基礎知識

乙個正規表示式就是由普通字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。如 jscript vbscript 匹配 t t 匹配乙個空白行。d d d d 驗證乙個i...

正規表示式基礎知識

正規表示式基礎知識 正規表示式是一種可以用於模式匹配和替換的強有力的工具,乙個正規表示式就是由普通的字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式,它描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。正規表示式在字元資料處...