PCRE是否正确支持unicode字符串?
答案 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的库存安装)