| 符號 | 描述 | 實例 | 匹配字串 |
^ |
行首 | ^word |
word |
$ |
行尾 | word$ |
word |
. |
任意字元 (換行字元除外) | c.t |
cat cbt cct |
[...] |
中括號中所列的字元 | [abc] |
a b c |
[^...] |
中括號中所列的字元外的所有字元 | [^abc] |
d e |
| 符號 | 描述 | 實例 | 匹配字串 |
re* |
匹配 0 或多次前一個字元 | xyz* |
xy xyz xyzzz |
re+ |
匹配 1 或多次前一個字元 | xyz+ |
xyz xyzzz |
re? |
匹配 0 或 1 次前一個字 | xyz? |
xy xyz |
re{n} |
匹配剛好 n 次前一個字元 | xy{3}z |
xyyyz |
re{n,} |
匹配 n 次(含)以上前一個字元 | xy{2,}z |
xyyz xyyyyz |
re{n,m} |
匹配最少 n 次最多 m 次前一個字元 | xy{2,3}z |
xyyz xyyyz |
"\" 接一字元代表一群字元,可用於 [...] 字元集中。
| 符號 | 描述 | 實例 | 匹配字串 |
\d |
數字 0 到 9,同 [0-9] |
x\dz |
x1z x5z |
\D |
非數字,同 [^\d] |
x\Dz |
xyz xAz |
\s |
空白字元,同 [ \t\r\n\f\v] |
x\sz |
x z |
\S |
非空白字元,同 [^\s] |
x\Sz |
xBz |
\w |
數字與英文字母,同 [a-zA-Z0-9] |
x\wz |
x3z xBz |
\W |
非數字與英文字母,同 [^a-zA-Z0-9] |
x\wz |
x#z |
\A |
僅匹配字串開頭,不同於 ^ 是每行行首 |
\Axyz |
xyz |
\Z |
僅匹配字串結尾,不同於 $ 是每行行尾 |
xyz\Z |
xyz |
\b |
匹配 \w 與 \W 之間,尋找字串邊界 |
\bxyz\b xyz! |
xyz |
\B |
[^\b,尋找非字串邊界 |
\Bxyz\B AxyzH |
xyz |
| 符號 | 描述 | 實例 | 匹配字串 |
abc|xyz |
| 左右兩邊任意匹配一個 |
abc|xyz |
abc xyz |
(...) |
小括號內為一組,每遇到一個左括號編號 +1,可透過 re 模組的 group 函式取得匹配字串,或 \num 引用。 |
(xyz){2} |
xyzxyz |
\num |
引用編號為 num 的匹配字串 |
(\d)xyz\1 |
1xyz1 3xyz3 |
(?P<name>..) |
同上的分組,但除了原編號外,再指定額外別名 | (?P<id>xyz){2} |
xyzxyz |
(?P=name) |
引用別名為 name 的匹配字串 | (?P<id>\d)xyz(?P=id) |
1xyz1 3xyz3 |
(..) 不是做分組。
| 符號 | 描述 | 實例 | 匹配字串 |
(?:..) |
(..) 不做分組編號 |
(?:xyz){2} |
xyzxyz |
(?ilmsux) |
ilmsux 每個字元代表一個匹配模式,只能用在正規表示式開頭,可複選,於選項 flag 中介紹 |
(?i)xyz |
xyz Xyz |
(?#..) |
# 後的內容為註解 |
xy(?#abc)z? |
xyz |
(?=..) |
接於字元後的匹配模式,但匹配時不印匹配模式。 | xy(?=\d) xy3 |
xy |
(?!..) |
接於字元後的不匹配模式,但匹配時不印匹配模式。 | xy(?!\d) xyz |
xy |
(?<=..) |
接於字元前的匹配模式,但匹配時不印匹配模式。 | (?<=\d)xy 3xy |
xy |
(?<!..) |
接於字元前的不匹配模式,但匹配時不印匹配模式。 | (?<!\d)xy zxy |
xy |
(?(id/name) yes-pattern|no-pattern) |
如果編號為 id 或別名為 name 的分組匹配,使用 yes-pattern,否則使用 no-pattern | ((\d)xyz(?(1)\d|\D) |
1xyz3 xyzB |
DYWANG_HOME