问题是,PCRE正则表达式引擎不理解
\uXXXX
-通过其Unicode码位表示字符的语法。相反,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);
看看我的答案
here
更多信息。
编辑:
$str = "ç»è®¡ç±»åç®ååä¸ºï¼æ¥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] => ï¼
[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是否支持
U
-修饰符(在Unix上为php>4.1.0,在Windows上为php>4.2.3)。