在 Python 程序中,模式字符串使用如下特殊的语法来表示一个正则表达式:
- 字母和数字表示它们自身,一个正则表达式模式中的字母和数字匹配同样的字符串;
- 当大多数字母和数字前加一个反斜杠时,它们会拥有不同的含义;
- 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义;
- 反斜杠本身需要使用反斜杠转义;
- 因为正则表达式通常都包含反斜杠,所以最好使用原始字符串来表示它们。模式元素(如r'\t',等价于'\\t')匹配相应的特殊字符。
表 1 列出了正则表达式模式语法中的特殊元素。如果使用模式的同时提供了可选的标志参数,则某些模式元素的含义会发生改变。
| 模式 | 描述 |
|---|---|
| ^ | 匹配字符串的开头 |
| $ | 匹配字符串的末尾 |
| . | 匹配任意字符,除换行符之外,当指定 re.DOTALL 标记时,则可以匹配包括换行符的任意字符 |
| [...] | 用来表示一组字符,单独列出,如 [amk] 匹配 'a' 'm' 或 'k' |
| [^...] | 不在 [] 中的字符,如[^abc] 匹配除 a、b、c 之外的字符 |
| re* | 匹配 0 个或多个表达式 |
| re+ | 匹配 1 个或多个表达式 |
| re? | 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式 |
| re{ n} | 精确匹配前面的 n 个表达式 |
| re{ n, m} | 匹配 n~m 次由前面的正则表达式定义的片段,贪婪方式 |
| a | b | 匹配 a 或 b |
| (re) | 匹配括号内的表达式,也表示一个组 |
| (?imx) | 正则表达式包含 3 种可选标志—— I、m 或 x。只影响括号中的区域 |
| (?-imx) | 正则表达式关闭 I、m 或 x 可选标志。只影响括号中的区域 |
| (?: re) | 类似于(…),但是不表示一组 |
| (?imx: re) | 在括号中使用I、m 或 x 可选标志 |
| (?-imx: re) |
在括号中不使用 I、m 或 x 可选标志 |

本文介绍了Python中正则表达式的使用,包括模式字符串的特殊语法,如何匹配函数和变量,以及在实际脚本中生成数据集的应用。示例代码展示了如何统计文件中的函数名与变量名,并提供了一个生成包含日期、邮箱和整数集的字符串数据集的脚本。
最低0.47元/天 解锁文章
167

被折叠的 条评论
为什么被折叠?



