麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php正則表達式匹配中文

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

在php中要利用正則來匹配中文漢字的話我們需要了解字符串編碼然后還有漢字的內碼這樣才可以方便快速的實現精確的匹配中文漢字出來,在php中來判斷字符串是否為中文,就會沿襲這個思路,代碼如下:

  1. <?php 
  2. $str = "php編程"
  3. if (preg_match("/^[u4e00-u9fa5]+$/",$str)) { 
  4. print("該字符串全部是中文"); 
  5. else { 
  6. print("該字符串不全部是中文"); 
  7. ?> 

不過,很快就會發現,php并不支持這樣的表達,報錯:

Warning: preg_match() [function.preg-match]: Compilation failed: PCRE does not support L, l, N, U,or u at offset 3 in test.php on line 3

剛開始從google上查了很多次,想從php正則表達式對于十六進制數據的表達方式上進行突破,發現在php中,是用x表示十六進制數據的,于是,變換成如下的代碼:

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

貌似不報錯了,判斷的結果也正確,不過把$str換成“編程”兩字,結果卻還是顯示“該字符串不全部是中文”,看來這樣的判斷還是不夠準確。

如果要精準匹配中文,即匹配純中文字符,或匹配中文字符加上全角標點,則需要根據不同編碼環境使用不同方法。

下面以兩種常用的編碼(gb2312,utf-8)代碼如下:

  1. //ANSI編程環境下: 
  2. $strtest = “yyg中文字符yyg”; 
  3. $pregstr = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])+/i"
  4. if(preg_match($pregstr,$strtest,$matchArray)){ 
  5. echo $matchArray[0]; 
  6. //output:中文字符 
  1. //Utf-8編程環境下: 
  2. $strtest = “yyg中文字符yyg”; 
  3. $pregstr = "/[x{4e00}-x{9fa5}]+/u"
  4. if(preg_match($pregstr,$strtest,$matchArray)){ 
  5. echo $matchArray[0]; 
  6. //output:中文字符 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人黄色片视频 | h视频在线免费看 | 99爱视频在线 | 黄在线| 国产美女视频一区 | 国产精品白嫩白嫩大学美女 | 国产一级淫片在线观看 | 色视频在线 | 欧美1| 亚洲一区久久久 | 欧美色淫| 国产中出在线观看 | chinesexxxx刘婷hd 国产91在线播放九色 | 国产福利不卡一区二区三区 | 黄色av免费电影 | 国产一级免费在线视频 | 92自拍视频| 成熟女人特级毛片www免费 | 国产精品麻豆一区二区三区 | 国产精品久久久久久久久久久天堂 | 羞羞视频在线免费 | 国产宾馆3p国语对白 | 最新福利在线 | 91成人免费版 | 国产xxxxx在线观看 | 在线91视频| 成人免费毛片在线观看 | 毛片a级毛片免费播放100 | 免费一级特黄做受大片 | 国产精品.com| 九九热视频这里只有精品 | 曰韩av在线| 久久精热 | 黄色av一区二区三区 | 久久久久久久久久久久久国产精品 | 久久久久久久黄色片 | 久久精品视频69 | 国产精品99精品 | 999久久久精品 | 欧美一级视屏 | 黄色毛片一级 |