在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("該字符串不全部是中文");
- }
新聞熱點(diǎn)
疑難解答