2013-06-02 38 views
0

我正在對UTF-8和PCRE進行一些測試,發現以下正則表達式無法匹配某個字符,如E1 8D 9F(字符)。PCRE無法匹配 X轉義序列的某些UTF-8字符

return preg_match_all('/\X/u' , $string , $matches , PREG_SET_ORDER); 

$string確切的說是一個UTF-8字符。與許多字符一起工作,但我有一個代碼點列表失敗了這個正則表達式。任何線索?

編輯:當我檢查他們逐字節的所有字符失敗與上述正則表達式顯示完全有效。這是一個錯誤還是什麼?

回答

1

這可能是您的PHP版本中的一個錯誤 - 它在PHP 5.4中運行正常,但並非所有以前的版本。這是一個online code sampling它適用於哪些人。

順便說一句這個答案是基於假設你的意思是character U+135F其中有utf-8編碼的0xE1 0x8D 0x9F。

http://www.fileformat.info/info/unicode/char/135F/index.htm

+0

是它的'U + 135F'字符。所以,在我的PHP 5.3.8上,它沒有匹配,因爲在線測試顯示「Result is:0」。順便說一句,感謝您的答案,並感謝代碼測試網站鏈接。 –