【问题标题】:Compilation failed: unknown property name after \P编译失败:\P 后的未知属性名称
【发布时间】:2013-02-25 16:42:16
【问题描述】:

使用 PHP 5.3.1,PCRE 已启用,版本为 7.9 2009-04-11。

$string = preg_replace("/\p{Number}/u", "", $string);

产生错误: 编译失败: \P 之后的未知属性名称。 . .

我知道这是一个在 PHP 5.3 及更高版本中修复的错误,但我显然得到了它,就像其他使用我的脚本的人一样。据我所知,这可能与正在使用的 PCRE 版本或它的编译方式有关。

我无法控制正在使用的 PHP 的编译版本。

  1. 如果 PCRE 编译正确,有没有办法检查 PHP 脚本?

  2. 我也在用:

    preg_match("/\p{Lu}/u", $caseChar); preg_match("/\p{Ll}/u", $caseChar); preg_match("/\p{L}/u", $string, $caseChar);

如果发现不正确的 PCRE(如果 1. 是可能的),是否可以替代上述 preg_replace 和 preg_match 表达式?

谢谢,

标记

【问题讨论】:

    标签: php pcre


    【解决方案1】:

    http://php.net/manual/en/regexp.reference.unicode.php

    \p{Number} 不是上述支持的属性代码。它是\p{N},甚至只是\pN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 2017-02-21
      • 2013-12-02
      • 2016-02-07
      相关资源
      最近更新 更多