3

使用 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 表达式的替代方法?

谢谢,

标记

4

1 回答 1

5

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

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

于 2013-02-25T16:46:09.600 回答