Python中使用了哪种正则表达式风格



我想知道Python使用哪种正则表达式风格?它是PCRE,Perl兼容还是ICU或其他东西?

它与Perl足够兼容,这意味着大多数Perl表达式都可以不加修改地工作。它的目标是与Perl兼容,但当然也有一些细微的区别。

从技术上讲,它使用自己的正则表达式风格。例如,命名组早在其他实现采用语法之前就已经在 Python 正则表达式中提供了。它还支持开箱即用的Unicode。如今,大多数Python扩展在其他地方都受支持。见 http://docs.python.org/library/re.html

不幸的是,我不能直接回答评论,但原子块是一个重要的功能(尽管很少有人了解它们的力量),因为您可以使用它创建多字节字符序列。 即在 Windows 中换行符是 \r。

示例:/(?>\r||\r)\p{Any}/与 \r 或 \r. 匹配,因为这是换行符和任何字符文本的组合,但它与 \r 不匹配,因为换行符后面没有任何内容。

这里有一个关于Python正则表达式支持的很好的概述。

总结一下:

Python 正则表达式语法中唯一缺少的重要功能是原子分组、所有格量词和 Unicode 属性。

原子分组和所有格量词并没有为语言增加太多的表现力。它们本质上用于更简单、更快的正则表达式。

Python 正则表达式支持 Unicode,

因为您可以使用文字 Unicode 字符(如 Æ),但不能在正则表达式本身中使用任何 Unicode 转义码。

最新更新