【问题标题】:Does PCRE support unicode string correctly?PCRE 是否正确支持 unicode 字符串?
【发布时间】:2011-08-15 22:48:20
【问题描述】:

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

【问题讨论】:

  • Unicode 字符串是什么意思?

标签: regex perl unicode pcre


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    完全支持cUnicode 5.1

    【讨论】:

      【解决方案3】:

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

      例如:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2016-11-04
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 2013-05-29
        相关资源
        最近更新 更多