1. 程式人生 > >python3 常用正則匹配表示式

python3 常用正則匹配表示式

python 正則匹配

@(python3)

字元

符號 描述 示例 結果
. 匹配除換行符 “\n” 之外的任何單個字元。    如果要匹配包括 ‘\n’ 在內的任何字元,請使用象 ‘[.\n]’ 的模式。 a.c abc
\ 轉義字元,使後一個正則字元改變原來的意思。 a\.c a\*c a.c a*c
[…] 匹配字符集內的任意一個字元。 [^…] 不匹配字符集內的字元。 a[bcd]e abe ace ade

預定義字符集

用於 […] 字符集內。

符號 描述 示例 結果
\d 匹配一個數字字元。等價於 [0-9]。
\D 匹配一個非數字字元。等價於 [^0-9]。
\s 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\S 匹配任何非空白字元。等價於 [^ \f\n\r\t\v]
\w 匹配包括下劃線的任何單詞字元。等價於’[A-Za-z0-9_]’
\W 匹配任何非單詞字元。等價於 ‘[^A-Za-z0-9_]’

數量詞

符號 描述 示例 結果
* 匹配前一個字元 0 次或無限次
+ 匹配前一個字元 1 次或無限次
? 匹配前一個字元 0 次或 1 次
{m} m代表數字,匹配前一個字元 m 次 ab{2}c abbc
{m,n} 匹配前一個字元 m 次到 n 次。n 可以省略比如{2,} a{1,2}b aab ab
.*.txt 貪婪匹配任何 .txt 結尾的字元 注意和 shell 不同

邊界匹配

符號 描述 示例 結果
^ 匹配字串開頭。多行模式中匹配每一行的開頭
$ 匹配字串末尾
\A 僅僅匹配字串開頭 \Aabc abc…
\Z 僅僅匹配字串結尾 123\Z …123
\b 匹配 \w 和 \W 之間 a\b!bc abc
\B [^\b] a\Bbc abc

邏輯、分組

符號 描述 示例 結果
| 左右表示式任意匹配一個
(…) 括號內的表示式作為分組,整體匹配 (abc){2} a(123|456)b

特殊構造

該部分內容可參考圖片,個人還未理解透徹。
這裡寫圖片描述