1. 程式人生 > >PHP正則匹配中文字串

PHP正則匹配中文字串

正則匹配中文漢字根據頁面編碼不同而略有區別
1.GBK/GB2312編碼:[x80-xff]+ 或 [xa1-xff]+
2.UTF-8編碼:[x{4e00}-x{9fa5}]+/u

$str = "使用者名稱123";
//把結果放在$chinese中
//GBK/GB2312使用: 
preg_match_all("/[\x80-\xff]+/", $str, $chinese);
//UTF-8 使用:
//preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $str, $chinese);
print_r($chinese);
preg_match("/[\x{4e00}-\x{9fa5}]+/u"
, $str);//匹配成功返回true,否則false

在使用UTF-8匹配的時候如果出現亂碼,可以先把$str轉換成utf8格式;

$str= iconv('GBK','UTF-8′,$str);
//或: 
//$str= mb_convert_encoding($str,'UTF-8','GBK');