【发布时间】:2010-12-22 10:02:42
【问题描述】:
Perl 和其他一些当前的正则表达式引擎在正则表达式中支持 Unicode 属性,例如类别。例如。在 Perl 中,您可以使用 \p{Ll} 匹配任意小写字母,或使用 p{Zs} 匹配任何空格分隔符。我在 Python 的 2.x 和 3.x 行中都没有看到对此的支持(很遗憾)。有人知道获得类似效果的好策略吗?欢迎使用本土解决方案。
【问题讨论】:
-
实际上,Perl 支持 所有 Unicode 属性,而不仅仅是一般类别。示例包括
\p{Block=Greek}, \p{Script=Armenian}, \p{General_Category=Uppercase_Letter}, \p{White_Space}, \p{Alphabetic}, \p{Math}, \p{Bidi_Class=Right_to_Left}, \p{Word_Break=A_Letter }, \p{Numeric_Value=10}, \p{Hangul_Syllable_Type=Leading_Jamo}, \p{Sentence_Break=SContinue},和大约 1,000 多个。只有 Perl 和 ICU 的正则表达式会费心去覆盖所有 Unicode 属性。其他人只涵盖了一小部分,通常甚至不足以进行最少的 Unicode 工作。
标签: python regex unicode ucd character-properties