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 |
特殊构造
该部分内容可参考图片,个人还未理解透彻。