婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP中正則表達式對UNICODE字符碼的匹配方法

PHP中正則表達式對UNICODE字符碼的匹配方法

熱門標簽:自己做的電銷機器人 上海銷售電銷機器人軟件 浙江營銷外呼系統有哪些 惠安地圖標注 山東外呼系統聯系方式 哈爾濱公司外呼系統代理 淄博市張店區地圖標注 遼寧秒客來電話機器人 地圖標注店鋪地圖標注酒店
網友ainiaa的問題是

PHP代碼如下
復制代碼 代碼如下:

$words = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSRUVWXYZ!@#$%^*()_+-=[]\\,./{}|>?'\"你好啊我們";
$otherStr=preg_replace("/[chr(128)-chr(256)]+/is"," ",$words);
echo 'otherStr:',$otherStr;

為什么打印的結果會是:
otherStr: ! #$% {}| ‘”你好啊我們

麻煩問下其中正則表達式 /[chr(128)-chr(256)]+/is 代表什么意思?
如果/[chr(128)-chr(256)]+/is 指的是ascii碼在128到256的字符,為什么a-zA-Z這樣的字符也被替換掉了,他們的ascii碼是小于127的。
最令人郁悶的是為什么ascii碼同在0-127區間”#”,”$”,”%”,””, “!”,” {“,”}”,”|”,” ‘”,”確沒有被替換掉????
更令人感覺神奇的是 如果把正則表達式修改為”/[chr(128)-chr(256)]+/s”的話,輸出的結果就變成了: otherStr: defg ijklmnopq stuvwxyz ! #$% {}| ‘”你好啊我們
只是把正則表達式中的符號‘i'給去掉,結果缺失這樣的。 完全的令我理解不了。
不知各位 有何見解????
另附ascii 碼 對照表
(這個ASCII碼表的圖我就不貼了)

回帖中,有個網友說沒解析chr(128)這些,并給出了新的解決方法。首先說下此網友回答的是正確的,先不評論他是否“知其然,且知其所以然”,這位網友沒有給出錯誤的原因。

CFC4N來回答一下這位網友:

PHP的正則的preg_match函數用的是PCRE正則引擎,這位網友的代碼中,PCRE引擎處理的正則表達式為【/[chr(128)-chr(256)]+/is】,后面的is是什么呢?
在PHP的正則里,邊界字符后面的叫模式修飾符。它會告訴引擎如何解析,處理正則。其中i修飾符表示不區分大小寫。s表示“點號通配模式”,用來讓正則里的元字符點號【.】可以匹配換行符,這個修飾符僅對點號【.】起作用。在這位網友的問題中,修飾符s并不起作用的。

查找原因:
我們在來分析一下這個網友寫的正則表達式【[chr(128)-chr(256)]+】,正則表達式的PCRE引擎是如何解釋這個正則的呢?首先,我們要知道,在正則表達式中,中括號【[]】表示字符組,字符組中除了連接符【-】只外,都不是元字符,也就是說,都是普通字符,當然,如果連字符出現在第一個,或者不是標識兩個字符之間范圍的,都是普通的字符橫杠“-”罷了。這里的chr(128)只是標識ASCII碼為128(確切的說,ASCII碼只是0-127個,128到其他的,應該不叫ASCII碼了。),但是在正則里,他仍然代表【c、h、r、(、1、2、8、)】(頓號不是,只是區分易讀的)這八個字符罷了。這個正則里的連接字符,是哪些范圍呢?很明顯,這里的連接字符的范圍是【)-c】,“)”ASCII碼為0×29,也就是十進制的41;“c”的ASCII碼為0×63,也就是十進制的99,那么,他這個連接字符的范圍就是ASCII 41(chr(41))到ASCII 99(chr(99))之間的字符。也就是說,這位網友的正則的范圍是【[hr)-c(]】,就是chr(41)到chr(99)外加hr這兩個字母和前面的“(”。
網友第一次測試的時候,有修飾符i,意思就是說,不區分大小寫,那么在chr(41)到chr(99)之間的字符,以及這些字符如果有大小寫,則包括他們的大小寫都符合匹配。都會被替換成空。其第二次測試的時候,去掉了修飾符i,進行了不區分大小寫的匹配,由于其范圍只到c,但突然,再除了小寫字母的“h”、“r”,所以,測試結果會多出“defgijklmnopqstuvwxyz”。所以,他的結果出現了這些差別。

網友的表達式等同于如下圖所示

解決辦法:
錯誤的原因找出來了,那么,解決的辦法呢?
我們先來看看這位網友的需求,他的需求是將unicode(ASCII只是0-127位的,128之后的,應該叫UNICODE碼)的chr(128)到chr(255)之間的字符匹配,替換為空罷了。正則表達式里,對十六進制的字符匹配的表示方式有兩種,【\u】和【\x{}】,前者只能表示【\u】后面4位的十六進制數值,而后者【\x{}】則可以表示任意多的十六進制位數(寫在大括號中)。
那么,這個正則表達式該如何寫????

網友的目的是chr(128)到chr(255),那么就是【[\u0080-\u00FF]】或者【[\x{0080}-\x{00FF}]】。
其目的是匹配下圖中的紅框內字符



提醒一下,PHP里正則匹配unicode字符時,需要使用u修飾符。
根據網友需求,更改正則之后的PHP代碼如下:
復制代碼 代碼如下:

$words = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSRUVWXYZ!@#$%^*()_+-=[]\\,./{}|>?'\"你好啊我們";
$otherStr=preg_replace("http://[\x{0080}-\x{00FF}]+/iu"," ",$words);
echo 'otherStr:',$otherStr;

其運行結果是仍然輸出那段字符串,為什么呢?因為哪些字符串都不在chr(128)到chr(255)的范圍之內。
(測試時,注意文件編碼為UTF-8)
以上為鄙人愚見,歡迎批評指正。
您可能感興趣的文章:
  • php中最簡單的字符串匹配算法
  • 正則匹配密碼只能是數字和字母組合字符串功能【php與js實現】
  • PHP使用數組依次替換字符串中匹配項
  • PHP的preg_match匹配字符串長度問題解決方法
  • PHP中preg_match函數正則匹配的字符串長度問題
  • PHP實現字符串翻轉功能的方法【遞歸與循環算法】
  • PHP中strnatcmp()函數“自然排序算法”進行字符串比較用法分析(對比strcmp函數)
  • php匹配字符中鏈接地址的方法
  • 基于PHP實現棧數據結構和括號匹配算法示例
  • PHP實現的字符串匹配算法示例【sunday算法】

標簽:西安 宣城 綿陽 重慶 泰州 長沙 無錫 銅川

巨人網絡通訊聲明:本文標題《PHP中正則表達式對UNICODE字符碼的匹配方法》,本文關鍵詞  PHP,中,正則,表達式,對,UNICODE,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP中正則表達式對UNICODE字符碼的匹配方法》相關的同類信息!
  • 本頁收集關于PHP中正則表達式對UNICODE字符碼的匹配方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    秋霞午夜鲁丝一区二区老狼| 91精品国产综合久久蜜臀 | 日本色综合中文字幕| 国产精品美女久久久久aⅴ| 日韩午夜av电影| 在线观看免费亚洲| 91丨porny丨国产| 国产一区二区在线免费观看| 天天操天天综合网| 亚洲成人综合在线| 一区二区久久久久久| 亚洲久草在线视频| 亚洲黄色小视频| 国产精品国产三级国产专播品爱网| 337p粉嫩大胆噜噜噜噜噜91av| 91精品国产综合久久久久久久久久 | 免费看黄色91| 成人高清视频在线观看| 久久黄色级2电影| 欧美午夜影院一区| 国产精品久久久久久久久久久免费看 | 亚洲男人电影天堂| 一区在线播放视频| 亚洲免费在线看| 亚洲欧美另类小说| 一个色妞综合视频在线观看| 亚洲一区精品在线| 日韩有码一区二区三区| 蜜桃视频一区二区三区在线观看| 日韩va欧美va亚洲va久久| 蜜桃精品视频在线| 国产一区二区伦理片| 懂色av中文一区二区三区| 国产91精品一区二区| 精品一区二区在线看| 精彩视频一区二区| av不卡在线播放| 欧美性大战久久| 日韩一区二区三区在线观看| 国产午夜亚洲精品羞羞网站| 日韩写真欧美这视频| 国产欧美日韩中文久久| 亚洲欧美一区二区不卡| 日韩电影在线免费| 国产精品一区二区果冻传媒| 在线免费亚洲电影| 精品国产凹凸成av人导航| 国产精品情趣视频| 午夜精品久久久久久久99樱桃| 国产一区在线观看视频| 色综合天天综合给合国产| 欧美一区二区三区男人的天堂| 国产精品久久夜| 日韩黄色片在线观看| 国产999精品久久久久久绿帽| 欧美性xxxxx极品少妇| 26uuu亚洲婷婷狠狠天堂| 亚洲精品菠萝久久久久久久| 激情欧美日韩一区二区| 欧洲精品中文字幕| 亚洲国产精品二十页| 蜜臀va亚洲va欧美va天堂| 色先锋久久av资源部| 亚洲精品一线二线三线无人区| 亚洲精品成人在线| www.日韩精品| 久久色.com| 日本在线不卡视频| 91成人网在线| 中文字幕永久在线不卡| 国产在线精品一区二区夜色| 在线成人av网站| 亚洲成人自拍网| 91麻豆精品视频| 国产精品久久久久久福利一牛影视 | 日韩欧美成人一区二区| 悠悠色在线精品| 99国产精品久久久久久久久久 | 日本乱人伦一区| 欧美国产精品一区二区三区| 久久精品99国产国产精| 777亚洲妇女| 国产在线播放一区三区四| 91精品欧美综合在线观看最新| 亚洲欧美日韩国产成人精品影院 | 国产日韩v精品一区二区| 毛片基地黄久久久久久天堂| 欧美三区免费完整视频在线观看| 亚洲国产成人午夜在线一区| 国产二区国产一区在线观看| 欧美精品一区二区三区蜜桃 | 在线观看中文字幕不卡| 亚洲欧美色一区| 国产91在线观看丝袜| 国产精品久久777777| 成人一区二区三区视频在线观看| 精品99一区二区三区| 国产尤物一区二区| 国产无人区一区二区三区| 天天做天天摸天天爽国产一区| 91麻豆高清视频| 亚洲欧美综合另类在线卡通| 国产毛片精品视频| 国产色产综合色产在线视频| 成人在线综合网| 久久夜色精品国产欧美乱极品| 奇米影视一区二区三区小说| 欧美精品在欧美一区二区少妇| 亚洲蜜臀av乱码久久精品蜜桃| 在线观看网站黄不卡| 日本视频一区二区| 国产欧美日韩麻豆91| 91蝌蚪porny成人天涯| 亚洲成人av中文| 欧美mv日韩mv国产| 成人av免费观看| 亚洲美腿欧美偷拍| 日韩午夜激情视频| 高清在线观看日韩| 一区二区三区精品在线| 在线播放国产精品二区一二区四区| 美女性感视频久久| 中文幕一区二区三区久久蜜桃| 91免费视频网址| 舔着乳尖日韩一区| 国产精品福利一区| 日韩一级免费观看| 99视频精品全部免费在线| 首页亚洲欧美制服丝腿| 国产日产欧美一区| 欧美欧美欧美欧美| 成人久久久精品乱码一区二区三区| 亚洲一区在线观看免费观看电影高清 | 91麻豆精品91久久久久同性| 国内成+人亚洲+欧美+综合在线| 久久久久综合网| 在线免费观看日韩欧美| 激情文学综合插| 亚洲国产aⅴ成人精品无吗| 国产亚洲福利社区一区| 欧美日韩精品一二三区| 成人免费看视频| 日韩专区在线视频| 国产精品久久久久7777按摩 | 国产一级精品在线| 亚洲国产婷婷综合在线精品| 久久精品视频网| 在线播放中文字幕一区| 色综合久久久久网| 成人综合激情网| 国产一区91精品张津瑜| 日本aⅴ亚洲精品中文乱码| 亚洲激情自拍偷拍| 国产精品欧美经典| 久久午夜免费电影| 日韩欧美不卡一区| 欧美手机在线视频| 色老汉一区二区三区| 成人avav影音| 成人免费毛片片v| 国产精品乡下勾搭老头1| 九一久久久久久| 麻豆成人免费电影| 捆绑调教美女网站视频一区| 中文字幕免费观看一区| 国产日韩精品一区二区三区在线| 久久久国产精华| 国产精品五月天| 国产精品久久毛片a| 欧美国产精品中文字幕| 中文字幕不卡一区| 国产精品国产三级国产普通话蜜臀| 久久精品视频一区| 欧美韩国日本综合| 国产精品久久久久桃色tv| 国产女同互慰高潮91漫画| 亚洲国产高清不卡| 综合久久国产九一剧情麻豆| 欧美高清在线精品一区| 国产精品毛片无遮挡高清| 国产精品免费网站在线观看| 国产精品的网站| 亚洲乱码国产乱码精品精小说 | 91网址在线看| 欧美在线观看视频一区二区| 欧美视频一区二区| 欧美一区二区三区人| www激情久久| 国产精品色哟哟网站| 亚洲日本欧美天堂| 天天色 色综合| 国产精品一区二区在线观看网站| 国产suv精品一区二区883| 成人国产精品免费观看| 在线免费观看不卡av| 6080国产精品一区二区| 久久综合色8888| 亚洲男同1069视频| 美日韩一级片在线观看| 波多野结衣中文字幕一区 |