字元類
字元類用於區分不同型別的字元,例如區分字母和數字。
| 字元 | 含義 |
|---|---|
[xyz]
|
字元類: 匹配方括號中包含的任何一個字元。您可以使用連字元指定字元範圍,但如果連字元出現在方括號內作為第一個或最後一個字元,則它將被視為一個字面連字元,並作為普通字元包含在字元類中。 例如, 例如, 例如, |
|
|
反向字元類: 匹配方括號中未包含的任何字元。您可以使用連字元指定字元範圍,但如果連字元出現在 注意: ^ 字元也可以表示輸入的開頭。 |
. |
萬用字元: 匹配任何單個字元,除了行終止符: |
\d |
數字字元類轉義: 匹配任何數字(阿拉伯數字)。等同於 |
\D |
非數字字元類轉義: 匹配任何非數字(阿拉伯數字)字元。等同於 |
\w |
單詞字元類轉義: 匹配基本拉丁字母中的任何字母數字字元,包括下劃線。等同於 |
\W |
非單詞字元類轉義: 匹配基本拉丁字母中非單詞字元的任何字元。等同於 |
\s |
空白字元類轉義: 匹配單個空白字元,包括空格、製表符、換頁符、換行符和其他 Unicode 空格。等同於 |
\S |
非空白字元類轉義: 匹配單個非空白字元。等同於 |
\t |
匹配水平製表符。 |
\r |
匹配回車符。 |
\n |
匹配換行符。 |
\v |
匹配垂直製表符。 |
\f |
匹配換頁符。 |
[\b] |
匹配退格符。如果您要查詢單詞邊界斷言 (\b),請參閱斷言。 |
\0 |
匹配 NUL 字元。其後不能跟其他數字。 |
\cX
|
使用脫字號表示法匹配控制字元,其中 "X" 是 A-Z 的字母(對應於程式碼點 |
\xhh
|
匹配程式碼為 hh(兩個十六進位制數字)的字元。 |
\uhhhh
|
匹配值為 hhhh(四個十六進位制數字)的 UTF-16 程式碼單元。 |
\u{hhhh} 或 \u{hhhhh}
|
(僅當設定了 u 標誌時)匹配 Unicode 值為 U+hhhh 或 U+hhhhh(十六進位制數字)的字元。 |
\p{UnicodeProperty}, \P{UnicodeProperty} |
Unicode 字元類轉義: 根據其 Unicode 字元屬性匹配字元(例如,表情符號字元、日文片假名字元或中文/日文漢字等)。 |
\ |
表示應特殊對待或“轉義”後續字元。它有兩種行為方式。
注意: 要字面匹配此字元,請用自身轉義它。換句話說,要搜尋 |
x|y
|
邏輯或: 匹配 "x" 或 "y"。每個由豎線 (
注意: 邏輯或是一種指定“一組選擇”的另一種方式,但它不是一個字元類。邏輯或不是原子——您需要使用一個分組來使其成為更大模式的一部分。 |
斷言
斷言包括邊界(指示行和單詞的開頭和結尾)以及以某種方式指示匹配可能性的其他模式(包括先行斷言、後行斷言和條件表示式)。
邊界型別斷言
| 字元 | 含義 |
|---|---|
^ |
輸入邊界起始斷言: 匹配輸入的開頭。如果啟用了 注意: 當此字元出現在字元類的開頭時,它具有不同的含義。 |
$ |
輸入邊界結束斷言: 匹配輸入的結尾。如果啟用了 |
\b |
單詞邊界斷言: 匹配一個單詞邊界。這是單詞字元不緊接或不緊跟另一個單詞字元的位置,例如在字母和空格之間。請注意,匹配的單詞邊界不包含在匹配結果中。換句話說,匹配的單詞邊界的長度為零。 示例
要匹配退格符 ( |
\B |
非單詞邊界斷言: 匹配非單詞邊界。這是前一個字元和後一個字元型別相同的位置:兩者都必須是單詞字元,或者兩者都必須是非單詞字元,例如在兩個字母之間或兩個空格之間。字串的開頭和結尾被視為非單詞。與匹配的單詞邊界一樣,匹配的非單詞邊界也不包含在匹配結果中。例如, |
其他斷言
注意: ? 字元也可以用作量詞。
| 字元 | 含義 |
|---|---|
x(?=y) |
先行斷言: 僅當 "x" 後面跟著 "y" 時才匹配 "x"。例如, |
x(?!y) |
負向先行斷言: 僅當 "x" 後面沒有跟著 "y" 時才匹配 "x"。例如, |
(?<=y)x |
後行斷言: 僅當 "x" 前面是 "y" 時才匹配 "x"。例如, |
(?<!y)x |
負向後行斷言: 僅當 "x" 前面不是 "y" 時才匹配 "x"。例如, |
分組和反向引用
分組和反向引用表示表示式字元組。
| 字元 | 含義 |
|---|---|
(x) |
捕獲組: 匹配 一個正則表示式可以有多個捕獲組。在結果中,捕獲組的匹配項通常在一個數組中,其成員的順序與捕獲組中左括號的順序相同。這通常就是捕獲組本身的順序。當捕獲組巢狀時,這一點變得很重要。透過結果元素的索引 ( 捕獲組會帶來效能損失。如果您不需要回調匹配的子字串,請優先使用非捕獲括號(見下文)。
如果設定了 |
(?<Name>x) |
命名捕獲組: 匹配 "x" 並將其儲存在返回匹配項的 groups 屬性中,名稱由 例如,要從電話號碼中提取美國區號,我們可以使用 |
(?:x) |
非捕獲組: 匹配 "x" 但不記住匹配項。匹配的子字串無法從結果陣列的元素 ( |
(?flags:x), (?:flags-flags:x) |
修飾符: 僅對封閉模式啟用或停用指定標誌。修飾符中只能使用 |
\n
|
反向引用: 其中 "n" 是一個正整數。匹配正則表示式中第 n 個捕獲組(從左括號開始計數)匹配的相同子字串。例如, |
\k<Name> |
命名反向引用: 對由 例如,
注意: |
量詞
量詞表示要匹配的字元或表示式的數量。
| 字元 | 含義 |
|---|---|
x*
|
匹配前面的項 "x" 0 次或更多次。例如, |
x+
|
匹配前面的項 "x" 1 次或更多次。等同於 |
x?
|
匹配前面的項 "x" 0 次或 1 次。例如, 如果緊跟在 |
x{n}
|
其中 "n" 是一個非負整數,精確匹配前面的項 "x" 出現 "n" 次。例如, |
x{n,}
|
其中 "n" 是一個非負整數,匹配前面的項 "x" 至少出現 "n" 次。例如, |
x{n,m}
|
其中 "n" 和 "m" 是非負整數,且 |
|
|
預設情況下,像
|