Python 正则表达式语法与使用指南
1. 正则表达式基础语法
1.1 字符与字符类
1.1.1 特殊字符
以下字符在正则中具有特殊含义,如需匹配字面值需进行转义:^, $, ., ?, +, *, {, }, |, (, ), [, \
1.1.2 字符类
- 包含在
[]中的一个或多个字符被称为字符类。若未指定量词,默认只匹配其中一个。 - 可指定范围,如
[a-zA-Z0-9]表示 a 到 z、A 到 Z、0 到 9 之间的任意字符。 - 左方括号后跟随
^表示否定,如[^0-9]表示匹配任意非数字字符。 - 字符类内部除
^,-,],外,其他特殊字符无特殊意义。^放首位表否定,-放中间表范围,[放首位表本身。 - 可使用速记法简化书写。
1.1.3 速记法
.:匹配除换行符外的任何字符(re.DOTALL标志下包含换行)。\d:匹配 Unicode 数字(re.ASCII下为 0-9)。\D:匹配 Unicode 非数字。\s:匹配 Unicode 空白字符(re.ASCII下为空格、制表符等)。\S:匹配 Unicode 非空白。\w:匹配 Unicode 单词字符(re.ASCII下为[a-zA-Z0-9_])。\W:匹配 Unicode 非单词字符。
1.2 量词
?:匹配前面的字符 0 次或 1 次。*:匹配前面的字符 0 次或多次。+:匹配前面的字符 1 次或多次。{m}:匹配前面表达式 m 次。{m,}:匹配前面表达式至少 m 次。{,n}:匹配前面表达式最多 n 次。{m,n}:匹配前面表达式至少 m 次,最多 n 次。
注意:以上量词默认为贪婪模式。改为非贪婪模式需在量词后加 ?,如 *?, +?, {m,n}?。
1.3 组与捕获
1.3.1 () 的作用
- 捕获:保存括号内内容供后续利用。添加
?:可关闭捕获功能,仅用于分组。


