正規表示式常用的字元和語法

2021-09-04 11:24:30 字數 1885 閱讀 6455

常用的元字元 **

說明.匹配除換行符以外的任意字元

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

\s匹配任意的空白符

\d匹配數字

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

^匹配字串的開始

$匹配字串的結束

常用的限定符

**/語法說明*

重複零次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多次

重複n到m次

常用的反義**

**/語法

說明\w

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

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

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

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

[^x]

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

[^aeiou]

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

懶惰限定符

**/語法

說明*?

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

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

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

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

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

常用分組語法 分類

**/語法

說明捕獲

(exp)

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

(?exp)

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

(?:exp)

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

零寬斷言

(?=exp)

匹配exp前面的位置

(?<=exp)

匹配exp後面的位置

(?!exp)

匹配後面跟的不是exp的位置

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

注釋(?#comment)

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

尚未詳細討論的語法

**/語法

說明\a

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

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

\t製表符,tab

\r回車

\v豎向製表符

\f換頁符

\n換行符

\eescape

\0nn

ascii**中八進位制**為nn的字元

\xnn

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

\unnnn

unicode**中十六進製制**為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

正規表示式 常用正規表示式

一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...

正規表示式 常用正規表示式

網域名稱 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 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...

正規表示式常用

正規表示式的介紹 1 資料型別 基本資料型別 number string boolean null undefined 複雜資料型別 array function object math date regexp正規表示式 string number boolean 2 regular express...