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