使用PHP 5.3.1,PCRE已启用,版本为7.9 2009-04-11。
$string = preg_replace("/\p{Number}/u", "", $string);
产生错误: 编译失败:\ P后的未知属性名称。 。
我知道这是一个在PHP 5.3及更高版本中修复的错误,但我显然和其他人一样使用我的脚本。据我所知,它可能与正在使用的PCRE版本或编译方式有关。
我无法控制正在使用的PHP编译版本。
如果PCRE编译正确,有没有办法检查PHP脚本?
我也在使用:
preg_match(“/ \ p {Lu} / u”,$ caseChar); preg_match(“/ \ p {Ll} / u”,$ caseChar); preg_match(“/ \ p {L} / u”,$ string,$ caseChar);
如果找到了错误的PCRE(如果可能的话),是否有上述preg_replace和preg_match表达式的替代方法?
谢谢,
标记
答案 0 :(得分:5)
http://php.net/manual/en/regexp.reference.unicode.php
\p{Number}
不是上述支持的属性代码。它是\p{N}
,甚至只是\pN
。