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