Php 某些特殊部件的正则表达式问题
当我试图用以下代码查找某些字符时遇到问题:Php 某些特殊部件的正则表达式问题,php,regex,Php,Regex,当我试图用以下代码查找某些字符时遇到问题: $str = "统计类型目前分为0日Q统计,月统q计及287年7统1计三7种,如需63自定义时间段,点1击此hell处进入自o定w义统or计d!页面。其他统计:客服工作量统计 | 本周服务统计EXCEL"; preg_match_all('/[\w\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]/',$str,$match); //line 5 print_r($match); 我得到的错误如下: Warning: p
$str = "统计类型目前分为0日Q统计,月统q计及287年7统1计三7种,如需63自定义时间段,点1击此hell处进入自o定w义统or计d!页面。其他统计:客服工作量统计 | 本周服务统计EXCEL";
preg_match_all('/[\w\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]/',$str,$match); //line 5
print_r($match);
我得到的错误如下:
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 4 in E:\mycake\app\webroot\re.php on line 5
我不太熟悉reg表达式,也不知道这个错误。我如何修复它?谢谢。问题是,PCRE正则表达式引擎不理解通过unicode码点表示字符的
\uxxx
-语法。相反,PCRE引擎使用\x{XXXX}
-语法和u
-修饰符:
preg_match_all('/[\w\x{FF10}-\x{FF19}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}]/u',$str,$match);
print_r($match);
有关更多信息,请参阅我的答案
编辑:
$str = "统计类型目前分为0日Q统计,月统q计及287年7统1计三7种,如需63自定义时间段,点1击此hell处进入自o定w义统or计d!页面。其他统计:客服工作量统计 | 本周服务统计EXCEL";
preg_match_all('/[\w\x{FF10}-\x{FF19}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}]/u',$str,$match);
// ^
// |
print_r($match);
/* Array
(
[0] => Array
(
[0] => 0
[1] => Q
[2] => q
[3] => 2
[4] => 8
[5] => 7
[6] => 7
[7] => 1
[8] => 7
[9] => 6
[10] => 3
[11] => 1
[12] => h
[13] => e
[14] => l
[15] => l
[16] => o
[17] => w
[18] => o
[19] => r
[20] => d
[21] => E
[22] => X
[23] => C
[24] => E
[25] => L
)
) */
您确定使用了
u
-修饰符(参见上面的箭头)?如果是这样,您必须检查您的PHP是否支持thu
-修饰符(Unix上的PHP>4.1.0,Windows上的PHP>4.2.3)。问题是,PCRE正则表达式引擎不理解通过unicode码点表示字符的\uxxx
-语法。相反,PCRE引擎使用\x{XXXX}
-语法和u
-修饰符:
preg_match_all('/[\w\x{FF10}-\x{FF19}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}]/u',$str,$match);
print_r($match);
有关更多信息,请参阅我的答案
编辑:
$str = "统计类型目前分为0日Q统计,月统q计及287年7统1计三7种,如需63自定义时间段,点1击此hell处进入自o定w义统or计d!页面。其他统计:客服工作量统计 | 本周服务统计EXCEL";
preg_match_all('/[\w\x{FF10}-\x{FF19}\x{FF21}-\x{FF3A}\x{FF41}-\x{FF5A}]/u',$str,$match);
// ^
// |
print_r($match);
/* Array
(
[0] => Array
(
[0] => 0
[1] => Q
[2] => q
[3] => 2
[4] => 8
[5] => 7
[6] => 7
[7] => 1
[8] => 7
[9] => 6
[10] => 3
[11] => 1
[12] => h
[13] => e
[14] => l
[15] => l
[16] => o
[17] => w
[18] => o
[19] => r
[20] => d
[21] => E
[22] => X
[23] => C
[24] => E
[25] => L
)
) */
您确定使用了
u
-修饰符(参见上面的箭头)?如果是这样,您必须检查您的PHP是否支持thu
-修饰符(Unix上的PHP>4.1.0,Windows上的PHP>4.2.3)。谢谢,错误已经消失。但是结果变成了空数组,可能有什么问题吗?我添加了输入变量$str
。你是对的。我让代码在我的lamp而不是wamp上运行,它工作正常:)谢谢,错误已经消失了。但是结果变成了空数组,可能有什么问题吗?我添加了输入变量$str
。你是对的。我让代码在我的lamp而不是wamp上运行,它工作正常:)