Python自带了正则表达式引擎(内置的re模块),不过支持的特性比较单薄,以下这些特性都不支持:
- 固化分组 Atomic grouping
- 占有优先量词 Possessive quantifiers
- 可变长逆序环视 Variable-length lookbehind
- 递归匹配 Recursive patterns
Matthew Barnett为Python写了一个更强大正则表达式引擎——regex模块,可以替代内置的re模块。除了上面说到的几个特性,还有很多新东西。
先说安装regex,在命令行执行这个就可以了:
pip install regex
regex分为版本0和版本1两个工作模式,其中的版本0兼容现有的re模块:
版本0 (兼容re模块) | 版本1 | |
启用方法 |
设置.VERSION0或.V0标志,或者在表达式里写上(?V0)。 如果什么设置都不做,默认就是版本0。 |
设置.VERSION1或.V1标志,或者在表达式里写上(?V1)。 |
.split()的行为 | 不能在零宽匹配处切割字符串。 | 可以在零宽匹配处切割字符串。 |
零宽匹配 | 像re那样处理。 | 像Perl和PCRE那样处理。 |
表达式里面的标识 | 只能作用于整个表达式,且不可关闭。 | 可以作用于整个或部分表达式,可以关闭。 |
字符组 | 只支持简单的字符组。 | 字符组里可以有嵌套的集合,也可以做集合运算(并集、交集、差集、对称差集)。 |
字符大小写 | 默认只支持简单的大小写。 | 默认支持全部Unicode字符的大小写。 |
时间: 2024-10-29 10:46:31