国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP正則匹配字符串中的中文

2024-09-04 11:47:34
字體:
來源:轉載
供稿:網友

我們先要明白,中文雙字節字符編碼范圍:

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,代碼如下:

  1. <?php 
  2. $str = '正則如何匹配中文字在某中文字符串中?'
  3. preg_match("/中/",$str,$regs); 
  4. print_r($regs); 
  5. ?>//開源代碼Vevb.com 
  6.  
  7. //輸出 
  8. Array 
  9.     [0] => 中 

例2,代碼如下:

  1. <?php 
  2. $str = '這里是中文 this is English'
  3. //把中文變成紅色 
  4. echo preg_replace("/([x80-xff].)/","<font color=red>/1</font>",$str); 
  5. //把非中文變成紅色 
  6. echo preg_replace("/([x20-x7f])/","<font color=red>/1</font>",$str); 
  7. ?> 

里面有中文、英文、數字等混排,則需要對漢字進行特殊處理,由于PCRE不支持U P L之類的perl字符串處理轉義,使用16進制或者Unicode進行處理,范例如下:

  1. $str = "之二寬闊的甘家口東#標簽1#標簽2 #標簽3。#標簽4,都發$1234 ¥xc,cvm , ¥12,dflksjf如何#標簽5.x #tag6.cvxcv“"
  2. preg_match_all('/#([a-zA-Z0-9x7f-xff]+)/'$str$mat); 
  3. print_r($mat); 
  4. //開源代碼Vevb.com 
  5. preg_match("/[x{00a5}x{ffe5}](d+)/u"$str$mat); 
  6. print_r($mat); 

最后我明白了php中utf-8編碼下用正則表達式匹配漢字的最終正確表達式——/^[x{4e00}-x{9fa5}]+$/u,代碼如下:

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

實例:下面這款匹配中文字符串正則表達式是一款利用數組,然后 多次for把全是中文字符串的打印出來.

  1. */ 
  2. $str_arr = array
  3. "iameverysorry"
  4. "快樂編程,快樂生活"
  5. "php教程編程"
  6. "1997年香港回歸"
  7. "英語學習abc"
  8. "www.survivalescaperooms.com" 
  9. ); 
  10.  
  11. $patt_ch = chr(0xa1) . "-" . chr(0xff); 
  12.  
  13. foreach ($str_arr as $str
  14.     echo "字符串'$str' 是"
  15.     if (preg_match("/^[$patt_ch]+$/"$str)) 
  16.     { 
  17.         echo "<b>完全中文</b>"
  18.         echo "<br>"
  19.         echo "<br>"
  20.     } 
  21.     else 
  22.     { 
  23.         echo "非完全中文"
  24.         echo "<br>"
  25.         echo "<br>"
  26.     } 
  27. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西藏| 婺源县| 饶平县| 金寨县| 诏安县| 宜都市| 尼勒克县| 固始县| 逊克县| 大同市| 华容县| 广河县| 廉江市| 五常市| 屏东市| 新宁县| 前郭尔| 鸡东县| 衢州市| 红安县| 饶平县| 绥芬河市| 兴仁县| 万源市| 廊坊市| 永胜县| 望江县| 宿州市| 漯河市| 醴陵市| 泰州市| 米泉市| 日照市| 宜宾县| 吉首市| 房山区| 正镶白旗| 泗阳县| 丹凤县| 福鼎市| 中西区|