PHP正則匹配字串中的中文_PHP教程

來源:互聯網
上載者:User
本文章總結了php中利用Regex來匹配中文的一些執行個體函數,有需要的朋友可參考參考。

我們先要明白
中文雙位元組字元編碼範圍

1. GBK (GB2312/GB18030)
x00-xff GBK雙位元組編碼範圍
x20-x7f ASCII
xa1-xff 中文 gb2312
x80-xff 中文 gbk

2. UTF-8 (Unicode)

u4e00-u9fa5 (中文)
x3130-x318F (韓文
xAC00-xD7A3 (韓文)
u0800-u4e00 (日文)

擷取指定的中文與字元
例1

代碼如下 複製代碼
$str = '正則如何匹配中文字在某中文字串中?';
preg_match("/中/",$str,$regs);
print_r($regs);
?>

輸出
Array
(
[0] => 中
)

例2

代碼如下 複製代碼

$str = '這裡是中文 this is English';
//把中文變成紅色
echo preg_replace("/([x80-xff].)/","1",$str);
//把非中文變成紅色
echo preg_replace("/([x20-x7f])/","1",$str);
?>


簽裡面有中文、英文、數字等混排,則需要對漢字進行特殊處理,由於PCRE不支援U P L之類的perl字串處理轉義,使用16進位或者Unicode進行處理,範例如下:

代碼如下 複製代碼


$str = "之二寬闊的甘家口東#標籤1#標籤2 #標籤3。#標籤4,都發$1234 ¥xc,cvm , ¥12,dflksjf如何#標籤5.x #tag6.cvxcv“";
preg_match_all('/#([a-zA-Z0-9x7f-xff]+)/', $str, $mat);
print_r($mat);

preg_match("/[x{00a5}x{ffe5}](d+)/u", $str, $mat);
print_r($mat);


最後我明白了php中utf-8編碼下用Regex匹配漢字的最終正確運算式——/^[x{4e00}-x{9fa5}]+$/u

代碼如下 複製代碼

$str = "php編程";
if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) {
print("該字串全部是中文");
} else {
print("該字串不全部是中文");
}


執行個體

下面這款匹配中文字串Regex是一款利用數組,然後 多次for把全是中文字串的列印出來。
*/

代碼如下 複製代碼

$str_arr = array(
"iameverysorry",
"快樂編程,快樂生活",
"php教程編程",
"1997年香港迴歸",
"英語學習abc",
"www.bkjia.com"
);

$patt_ch = chr(0xa1) . "-" . chr(0xff);

foreach ($str_arr as $str)
{
echo "字串'$str' 是";
if (preg_match("/^[$patt_ch]+$/", $str))
{
echo "完全中文";
echo "
";
echo "
";
}
else
{
echo "非完全中文";
echo "
";
echo "
";
}
}

更多詳細內容請查看:http://www.bkjia.com/phper/php-cy/34301.htm


http://www.bkjia.com/PHPjc/444649.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444649.htmlTechArticle本文章總結了php中利用Regex來匹配中文的一些執行個體函數,有需要的朋友可參考參考。 我們先要明白 中文雙位元組字元編碼範圍 1. GBK...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.