我上次检查时发现,它们在 Unicode 支持方面存在很大差异。 1.9 中的 Ruby 至少有一些非常有限的 Unicode 支持。我相信现在可能支持一两个 Unicode 属性。可能是一般类别,也可能是脚本是我正在考虑的两个。
Python 同时对 Unicode 的支持越来越少。 Python似乎确实可以满足以下要求RL1.2a“兼容性”从UTS#18开始Unicode 正则表达式.
也就是说,有一个非常不错的 Python 库马修·巴尼特 (mrab)最终向 Python 正则表达式添加了一些 Unicode 属性。他支持两个最重要的:一般类别和脚本属性。它还有一些其他有趣的功能。它值得一些良好的宣传。
我认为 Ruby 或 Python 对 Unicode 的支持都不是很好,尽管每天都有越来越多的事情完成。然而,特别是,两者都满足上面引用的 Unicode 正则表达式的准系统 1 级要求。例如,RL1.2要求至少支持11个属性:General_Category, Script, Alphabetic, Uppercase, Lowercase, White_Space, Noncharacter_Code_Point, Default_Ignorable_Code_Point, ANY, ASCII,
and ASSIGNED
.
我认为 Python 只能让你实现其中的一些,而且只是以一种迂回的方式。当然,除了这 11 个属性之外,还有很多很多其他属性。
当您寻求 Unicode 支持时,当然,正则表达式上不仅仅只有 UTS#10,尽管这是对这个问题最重要的支持,而且 Ruby 和 Puython 都不符合 1 级标准。 Unicode 的其他非常重要的方面包括 UAX#15、UAX#14、UTS#18、UAX#11、UAX#29,当然还有关键的 UAX#44。我知道,Python 至少有几个这样的库。我不知道它们是标准的。
但是说到正则表达式支持,嗯,有are你知道,比这两个更丰富的选择。 :)