代碼 | 說明 |
---|---|
. | 匹配除換行符之外的任意字符 |
\w | 匹配字母或數字或下劃線或漢字 |
\s | 匹配任意的空白符 |
\d | 匹配數字 |
\b | 匹配單詞的開始或結束 |
^ | 匹配字符串的開始 |
$ | 匹配字符串的結束 |
代碼/語法 | 說明 |
---|---|
\W | 匹配任意不是字母,數字,下劃線,漢字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非數字的字符 |
\B | 匹配不是單詞開頭或結束的位置 |
[^x] | 匹配除了x之外的任意字符 |
[^aeiou] | 匹配除了aeiou這幾個字母之外的任意字符 |
代碼/語法 | 說明 |
---|---|
* | 重複零次或更屢次 |
+ | 重複一次或更屢次 |
? | 重複零次或一次 |
{n} | 重複n次 |
{n,} | 重複n次或更屢次 |
{n,m} | 重複n到m次 |
分類 | 代碼/語法 | 說明 |
---|---|---|
捕獲 | (exp) | 匹配exp,並捕獲文本到自動命名的組裏 |
(?<name>exp) | 匹配exp,並捕獲文本到名稱爲name的組裏,也能夠寫成(?'name'exp) | |
(?:exp) | 匹配exp,不捕獲匹配的文本,也不給此分組分配組號 | |
零寬斷言 | (?=exp) | 匹配exp前面的位置 |
(?<=exp) | 匹配exp後面的位置 | |
(?!exp) | 匹配後面跟的不是exp的位置 | |
(?<!exp) | 匹配前面不是exp的位置 | |
註釋 | (?#comment) | 這種類型的分組不對正則表達式的處理產生任何影響,用於提供註釋讓人閱讀 |
代碼/語法 | 說明 |
---|---|
*? | 重複任意次,但儘量少重複 |
+? | 重複1次或更屢次,但儘量少重複 |
?? | 重複0次或1次,但儘量少重複 |
{n,m}? | 重複n到m次,但儘量少重複 |
{n,}? | 重複n次以上,但儘量少重複 |
名稱 | 說明 |
---|---|
IgnoreCase(忽略大小寫) | 匹配時不區分大小寫。 |
Multiline(多行模式) | 更改^和$的含義,使它們分別在任意一行的行首和行尾匹配,而不單單在整個字符串的開頭和結尾匹配。(在此模式下,$的精確含意是:匹配\n以前的位置以及字符串結束前的位置.) |
Singleline(單行模式) | 更改.的含義,使它與每個字符匹配(包括換行符\n)。 |
IgnorePatternWhitespace(忽略空白) | 忽略表達式中的非轉義空白並啓用由#標記的註釋。 |
ExplicitCapture(顯式捕獲) | 僅捕獲已被顯式命名的組。 |
代碼/語法 | 說明 |
---|---|
\a | 報警字符(打印它的效果是電腦嘀一聲) |
\b | 一般是單詞分界位置,但若是在字符類裏使用表明退格 |
\t | 製表符,Tab |
\r | 回車 |
\v | 豎向製表符 |
\f | 換頁符 |
\n | 換行符 |
\e | Escape |
\0nn | ASCII代碼中八進制代碼爲nn的字符 |
\xnn | ASCII代碼中十六進制代碼爲nn的字符 |
\unnnn | Unicode代碼中十六進制代碼爲nnnn的字符 |
\cN | ASCII控制字符。好比\cC表明Ctrl+C |
\A | 字符串開頭(相似^,但不受處理多行選項的影響) |
\Z | 字符串結尾或行尾(不受處理多行選項的影響) |
\z | 字符串結尾(相似$,但不受處理多行選項的影響) |
\G | 當前搜索的開頭 |
\p{name} | Unicode中命名爲name的字符類,例如\p{IsGreek} |
(?>exp) | 貪婪子表達式 |
(?<x>-<y>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正則表達式 |