0
我正在使用preg_replace
和preg_match
與PHP,在這個字符集中工作:西里爾語的Windows 1251. 我試圖匹配使用大小寫不敏感修飾符的單詞。PHP正則表達式不區分大小寫西里爾字符集
我做這些測試:
$pattern = '/myCyrillicWord1|myCyrillicWord2/i';
$subject = 'Am I able to find MYCyrILlicWord1?';
$res = preg_replace($pattern, 'matched', $subject);
在UTF-8:
使用UTF-8修改器的模式:
$pattern = '/myCyrillicWord1|myCyrillicWord2/iu';
$output = 'Am I able to find matched or not';
沒有:
$pattern = '/myCyrillicWord1|myCyrillicWord2/i';
$output = 'Am I able to find MYCyrILlicWord1 or not';
在Windows 1251:
$pattern = '/myCyrillicWord1|myCyrillicWord2/i';
$output = 'Am I able to find MYCyrILlicWord1 or not';
的正則表達式是functionnal在UTF-8,但不是在Windows 1251 請注意,我用了像 'х' 和 'Х' cyrillics字符測試(看起來像拉丁字母'x'和'X')。
我的問題是要知道這種行爲是否正常?
如何在Windows 1251字符集中將我的西里爾文單詞與不區分大小寫的修飾符進行匹配?
非常感謝。
確實沒有。所以,你說得對,因爲這兩個變種看起來像是答案。 –
好多謝謝你的回答。我選擇了第二個變體,因爲它太重,無法將整個頁面轉換爲utf-8並轉換回原始編碼。現在沒關係,因爲我有十個字來檢查。如果我有幾百個字來檢查,我會感到失望,在這種情況下,這種解決方案將不適合。 – KevinNTH