PCRE是否正确支持unicode字符串?

时间:2011-04-30 06:25:43

标签: regex perl unicode pcre

PCRE是否正确支持unicode字符串?

3 个答案:

答案 0 :(得分:8)

是的,确实如此(尽管可能还不是Unicode 6)。来自man page

  

PCRE的当前实现大致对应于Perl 5.12,包括UTF-8编码字符串的端口和Unicode常规类别属性。但是,必须明确启用UTF-8和Unicode支持;它不是默认值。 Unicode表对应于Unicode版本5.2.0。

答案 1 :(得分:0)

它完全支持c Unicode 5.1

答案 2 :(得分:0)

如果您的PCRE是在未启用UTF-8的情况下编译的,则可以通过将(*UTF8)添加到正则表达式的开头来打开它。

例如:

> echo ‒ | grep -Po '[‒]'

分别匹配字符的3个utf-8代码中的每一个(即:3行输出),而这:

> echo ‒ | grep -Po '(*UTF8)[‒]'

具有预期结果,产生一行包含字符的输出。

(我正在使用Ubuntu 12.04的库存安装)