在Python中使用.NET正则表达式
我有一些为微软的 .net 正则表达式格式写的正则表达式,现在想在Linux机器上的Python程序里使用它们。请问有没有兼容的库或者方法可以转换它们?如果需要手动转换的话,你知道有没有什么速查表或者指南吗?
4 个回答
1
re
模块的文档介绍了Python中的正则表达式语法。顺便说一下,这种语法非常相似,只是在替换的部分有所不同。
6
在.NET的正则表达式中大部分功能在Python中也能找到,不过有一些东西是缺失的:
- Python不支持在回顾(lookbehind)中使用可变长度的重复,只能使用固定长度。
- Python的命名捕获用法和其他语言不同。
- Python对Unicode字符的匹配方式也不一样。
- Python没有原子组
(?>...)
或者占有量词++
,*+
,?+
。 - 在Python中,使用
r"..."
原始字符串来写正则表达式,否则你会在反斜杠上出错。
你可以在这里找到一个全面的 差异列表。
如果你经常需要进行正则表达式转换,RegexBuddy 可以帮你完成这项工作(当然前提是你使用的目标正则引擎要支持这些功能)。