正則表達式的匹配規則定義了如何識別字符串中的特定模式。這些規則包括字符類匹配、元字符匹配、數量詞、字符轉義和分組。
字符類匹配
字符類匹配允許你指定一個字符集合,并匹配該集合中的任意單個字符。這是通過方括號 []
來實現的。
-
簡單字符類:
[abc]
匹配 "a"、"b" 或 "c" 中的任意一個字符。 -
范圍字符類:
[a-z]
匹配任意小寫字母,[0-9]
匹配任意數字。 -
否定字符類:
[^abc]
匹配除了 "a"、"b"、"c" 之外的任意字符。 -
多字符集合:
[abc123]
匹配 "a"、"b"、"c"、"1"、"2" 或 "3" 中的任意一個字符。
元字符匹配
元字符是正則表達式中具有特殊含義的字符,用于指定復雜的匹配模式。
-
.
(點):匹配除換行符以外的任意單個字符。 -
^
:匹配輸入字符串的開始位置。 -
$
:匹配輸入字符串的結束位置。 -
*
:匹配前面的字符零次或多次。 -
+
:匹配前面的字符一次或多次。 -
?
:匹配前面的字符零次或一次。 -
|
:邏輯或操作符,匹配兩個表達式中的任意一個。
數量詞
數量詞指定一個字符或字符組出現的次數。
-
n*
:匹配前面的字符零次或多次(n 為任意正整數)。 -
n+
:匹配前面的字符一次或多次(n 為任意正整數)。 -
n?
:匹配前面的字符零次或一次(n 為任意正整數)。 -
n{m}
:匹配前面的字符恰好 m 次(m 為任意正整數)。 -
n{m,}
:匹配前面的字符至少 m 次。 -
n{m,n}
:匹配前面的字符至少 m 次,最多 n 次。
字符轉義
在正則表達式中,一些字符具有特殊含義。如果你想要匹配這些特殊字符本身,需要使用反斜杠 \
進行轉義。
-
\d
:匹配一個數字字符(等同于[0-9]
)。 -
\s
:匹配任何空白字符(包括空格、制表符、換頁符等)。 -
\w
:匹配任何字母數字字符(等同于[a-zA-Z0-9_]
)。 -
\n
:匹配換行符。 -
\.
:匹配點字符(.
)。
分組
分組允許你將多個字符視為一個整體進行匹配和操作。
-
捕獲組:
(...)
將括號內的內容視為一個整體進行匹配,并且可以被后續引用。 -
非捕獲組:
(?:...)
將括號內的內容視為一個整體進行匹配,但不捕獲匹配的內容。 -
選擇組:
(a|b)
匹配 "a" 或 "b"。 -
反向引用:
\1
引用第一個捕獲組匹配的內容。