在php中漢字正則可能有些朋友覺得很簡單,但是在使用時會發現在gbk編碼與uft8編碼可能會有點區別哦,下面小編來介紹一下。
gbk編碼下漢字正則
1.判斷字符串是否全是漢字
代碼如下
復制代碼
<?php
$str = '全部是漢字測試';
if (preg_match_all("/^([x81-xfe][x40-xfe])+$/", $str, $match)) {
echo '全部是漢字';
} else {
echo '不全是漢字';
}
?>
當$str = '全部是漢字測試'; 時輸出"全部是漢字";
當$str = 'all全部是漢字測試'; 時輸出"不全是漢字";
2.判斷字符串是否包含漢字
代碼如下
復制代碼
<?php
$str = '漢字3測試';
if (preg_match("/([x81-xfe][x40-xfe])/", $str, $match)) {
echo '含有漢字';
} else {
echo '不含有漢字';
}
?>
當$str = '漢字3測試'; 時輸出"含有漢字";
當$str = 'abc345'; 時輸出"不含有漢字";
上述變量$str的內容與utf8還是gbk編碼無關,判斷結果是一樣的。
utf-8編碼下用正則表達式如何匹配漢字
代碼如下
復制代碼
$str = "php編程";
if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) {
print("該字符串全部是中文");
} else {
print("該字符串不全部是中文");
}