常用正則規則:
構造 | 匹配 |
字符 | |
\\ | 反斜線字符 |
\r | 回車符 ('\u000D') |
\n | 新行(換行)符 ('\u000A') |
字符類 | |
[abc] | a、b 或 c |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] |
a 到 z 或 A 到 Z, 兩頭的字母包括在內(范圍) |
[a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](並集) |
[a-z&&[def]] | d、e 或 f(交集) |
[a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](減去) |
[a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](減去) |
預定義字符類 | |
. | 任何字符(與行結束符可能匹配也可能不匹配) |
\d | 數字:[0-9] |
\D | 非數字: [^0-9] |
\s | 空白字符:[ \t\n\x0B\f\r] |
\S | 非空白字符:[^\s] |
\w | 包括下划線的任何單詞字符:[a-zA-Z0-9_] |
\W | 非單詞字符:[^\w] |
邊界匹配器 | |
^ | 行的開頭 |
$ | 行的結尾 |
\b | 單詞邊界 |
\B | 非單詞邊界 |
\A | 輸入的開頭 |
\G | 上一個匹配的結尾 |
\Z | 輸入的結尾,僅用於最后的結束符(如果有的話) |
\z | 輸入的結尾 |
Greedy 數量詞 | |
X? | X,一次或一次也沒有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超過 m 次 |
Reluctant 數量詞 | |
X?? | X,一次或一次也沒有 |
X*? | X,零次或多次 |
X+? | X,一次或多次 |
X{n}? | X,恰好 n 次 |
X{n,}? | X,至少 n 次 |
X{n,m}? | X,至少 n 次,但是不超過 m 次 |
Possessive 數量詞 | |
X?+ | X,一次或一次也沒有 |
X*+ | X,零次或多次 |
X++ | X,一次或多次 |
X{n}+ | X,恰好 n 次 |
X{n,}+ | X,至少 n 次 |
X{n,m}+ | X,至少 n 次,但是不超過 m 次 |
Logical 運算符 | |
XY | X 后跟 Y |
X|Y | X 或 Y |
(X) | X,作為捕獲組 |
Back 引用 | |
\n | 任何匹配的 nth 捕獲組 |
引用 | |
\ | Nothing,但是引用以下字符 |
\Q | Nothing,但是引用所有字符,直到 \E |
\E | Nothing,但是結束從 \Q 開始的引用 |