在Python中使用.net正则表达式

roo*_*ook 2 .net python regex pcre

我有一些为Microsoft的.net正则表达式格式编写的正则表达式,我想在Linux机器上的python程序中使用它们.是否有兼容的库或覆盖它们的方法?如果我必须手工完成,你知道一个备忘单或指南吗?

Tim*_*ker 6

.NET正则表达式中的大多数功能都可以在Python中使用; 但是缺少一些东西:

  1. Python不支持lookbehinds中的变量重复,只支持固定长度.
  2. Python对命名捕获使用不同的语法.
  3. Python以不同方式匹配Unicode字符.
  4. Python没有原子团(?>...)或占有欲量词++,*+,?+.
  5. 在Python中,使用r"..."原始字符串表示正则表达式,否则你会在反斜杠上绊倒.

可以在此处找到完整的差异列表.

如果你需要经常进行正则表达式转换,RegexBuddy可以为你做(只要你没有使用目标正则表达式引擎没有的功能,当然).