编译失败:\ P后的未知属性名称

时间:2013-02-25 16:42:16

标签: php pcre

使用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);

  3. 如果找到了错误的PCRE(如果可能的话),是否有上述preg_replace和preg_match表达式的替代方法?

    谢谢,

    标记

1 个答案:

答案 0 :(得分:5)

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

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