[\u4e00-\u9fa5] , \u , pcre的正则不支持。 ANSI:汉字区的内码范围高字节从B0-F7,低字节从A1-FE Unicode:汉字的Unicode编码范围为\u4E00-\u9FA5 \uF900-\uFA2D,如果不在这个范围内就不是汉字了. 奇怪的结果 代码 $data = "123abcDx=123"; $reg = "#.(?![0-9a-zA-Z])#" ; preg_match_all($reg,$data,$matches); prt($matches); 出来的结果是 Array ( [0] => Array ( [0] => x [1] => 3 ) )