python3 常用正則匹配表示式
阿新 • • 發佈:2019-01-31
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 |
特殊構造
該部分內容可參考圖片,個人還未理解透徹。