常用正規表示式速查表

2022-07-04 22:42:19 字數 4127 閱讀 8744

字元補集(相反的)

.除換行符(\n)以外的任意字元

\n(換行)

\w單詞字元 (指大小寫字母、0-9的數字、下劃線、漢字)

\w\d

數字(0-9)

\d(非數字)

\s空白字元(空白字元,包括換行符\n、回車符\r、製表符\t、垂直製表符\v、換頁符\f)

\s.*

匹配任意文字,不包括回車(\n)?

[內容]

匹配括號內的列出的字元|

[^內容]     (匹配非內所列出的字元)

表示式說明

相反的^

表示待匹配串的開始位置(如:acute 可以用^ac),在內為非

$表示待匹配串的結束位置 (如:acute 可以用te$)

\b單詞的邊界 (可以替換"^""$"使用 如 \bac 或 te\b)

\b 義不在首位與未尾 (如acute \bcu 與ut\

表示式說明

示例前面的字元n次

aabbbcccc   a  結果:aa

前面的字元n次或以上

aabbbcccc   b 結果:bbb  b 無結果

前面的字元n-m次

aabbbcccc   b 結果:bbb , b 無結果

?前面的字元0-1次

aabbbcccc   aaa?bb 結果:aabb  (即可能存在的意思)

+前面的字元1或以上

aabbbcccc   c+  結果:cccc  (一定存在1次,或以上)

*前面的字元0或以上

aabbbcccc   a* 結果aa  c*結果cccc (匹配多個字元,字元量大時不適用)

表示式說明

示例(?=內容)

斷言自身出現的位置的後面能匹配表示式exp

i'm singing while you're dancing   表示式:\b\w+(?=ing\b) 

結果:sing      danc

(?<=內容)

斷言自身出現的位置的前面能匹配表示式exp

reading a book                           表示式:(?<=\bre)\w+\b

結果:ading

符號說明示例|

邏輯"或"

aabbbcccc  c+|a+ 結果:aa    cccc

\轉義符

\用於轉換做用

\r回車符

\n換行符

\v豎向製表符

\f換頁符

\t製表符,tab

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

\eescape

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

\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

邏輯與if...the..else..相同意義

(?(exp)yes)

同上,只是使用空表示式作為no

邏輯if...the..

(?(name)yes|no)

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

(?(name)yes)

同上,只是使用空表示式作為no

字元補集(相反的)

.除換行符(\n)以外的任意字元

\n(換行)

\w單詞字元 (指大小寫字母、0-9的數字、下劃線、漢字)

\w\d

數字(0-9)

\d(非數字)

\s空白字元(空白字元,包括換行符\n、回車符\r、製表符\t、垂直製表符\v、換頁符\f)

\s.*

匹配任意文字,不包括回車(\n)?

[內容]

匹配括號內的列出的字元|

[^內容]     (匹配非內所列出的字元)

表示式說明

相反的^

表示待匹配串的開始位置(如:acute 可以用^ac),在內為非

$表示待匹配串的結束位置 (如:acute 可以用te$)

\b單詞的邊界 (可以替換"^""$"使用 如 \bac 或 te\b)

\b 義不在首位與未尾 (如acute \bcu 與ut\

表示式說明

示例前面的字元n次

aabbbcccc   a  結果:aa

前面的字元n次或以上

aabbbcccc   b 結果:bbb  b 無結果

前面的字元n-m次

aabbbcccc   b 結果:bbb , b 無結果

?前面的字元0-1次

aabbbcccc   aaa?bb 結果:aabb  (即可能存在的意思)

+前面的字元1或以上

aabbbcccc   c+  結果:cccc  (一定存在1次,或以上)

*前面的字元0或以上

aabbbcccc   a* 結果aa  c*結果cccc (匹配多個字元,字元量大時不適用)

表示式說明

示例(?=內容)

斷言自身出現的位置的後面能匹配表示式exp

i'm singing while you're dancing   表示式:\b\w+(?=ing\b) 

結果:sing      danc

(?<=內容)

斷言自身出現的位置的前面能匹配表示式exp

reading a book                           表示式:(?<=\bre)\w+\b

結果:ading

符號說明示例|

邏輯"或"

aabbbcccc  c+|a+ 結果:aa    cccc

\轉義符

\用於轉換做用

\r回車符

\n換行符

\v豎向製表符

\f換頁符

\t製表符,tab

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

\eescape

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

\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

邏輯與if...the..else..相同意義

(?(exp)yes)

同上,只是使用空表示式作為no

邏輯if...the..

(?(name)yes|no)

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

(?(name)yes)

同上,只是使用空表示式作為no

常用正規表示式速查表

字元補集 相反的 除換行符 n 以外的任意字元 n 換行 w單詞字元 指大小寫字母 0 9的數字 下劃線 漢字 w d 數字 0 9 d 非數字 s空白字元 空白字元,包括換行符 n 回車符 r 製表符 t 垂直製表符 v 換頁符 f s.匹配任意文字,不包括回車 n 內容 匹配括號內的列出的字元 ...

正規表示式速查表

字元說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配換行符。序列 匹配 匹配 匹配輸入字串開始的位置。如果設定了regexp物件的multiline屬性,還會與 n 或 r 之後的位置匹配。匹配輸入字串結尾的位置。如果設定了regexp物件的multi...

正規表示式速查表

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元。或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果...