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