preg_match 匹配中文出錯
2023年01月06日 星期三 14:55
warning: preg_match() [function.preg-match]: compilation failed: pcre does not support \l, \l, \n, \u, or \u at offset 2 in ***xx on line 3
錯誤原因:
preg_match("/^[\u4e00-\u9fa5]$/",$str);
在使用上述**匹配漢字時,出現如題錯誤。
測試1:
preg_match("/^[\u4e00-\u9fa5]/",$str);
去掉結尾的「$」,錯誤依舊。
測試2:
preg_match("/^[\x4e00-\x9fa5]/",$str);
將u改為「x」,錯誤消失,但是匹配失敗。
測試3:
preg_match("/^[\x-\x]/",$str);
warning: preg_match() [function.preg-match]: compilation failed: character value in \x sequence is too large at offset 9 ind:***.phpon line25
測試4:
preg_match("/^[\x-\x]/u",$str);
加入引數u,錯誤消失,匹配正確。
另外乙個方法:放棄使用preg_match函式,改用ereg(),直接解決~
*************************====
特別注意加小寫的u
preg match正則匹配的字串長度問題
專案中,用preg match正則提取目標內容,死活有問題,測得死去活來。後來懷疑php 的preg match有字串長度限制,果然,發現 pcre.backtrack limit 的值預設只設了100000。解決辦法 ini set pcre.backtrack limit 999999999 注...
Rstudio匹配中文
之前在操作csv檔案時一般是將中文字元在excel或用perl將其中的中文轉換成對應的英文,但是最近碰到不得不在r裡面進行中文符操作,發現r裡面的匹配是無法識別的中文符的。比如 進行匹配操作 原因r讀入檔案時並不指定檔案的字元編碼,輸入的型別為unknown 而直接打中文的話則是utf 8編碼,因此...
正則中文匹配
w匹配的僅僅是中文,數字,字母,對於國人來講,僅匹配中文時常會用到,見下 匹配中文字元的正規表示式 u4e00 u9fa5 或許你也需要匹配雙位元組字元,中文也是雙位元組的字元 匹配雙位元組字元 包括漢字在內 x00 xff 注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 ...