2017-05-08 28 views
1

我無法在PHP中使用正則表達式。我使用的正規表達式模式i標誌,但它不使我的腳本的結果的影響:無法在PHP中使用不區分大小寫的正則表達式

$page = "Test"; 
$page1 = "test"; 
var_dump(preg_match("#^test#i", $page)); 
// int(0) 
var_dump(preg_match("#^test#i", $page1)); 
// int(1) 

我真的無法實現,在這裏我犯了一個錯誤,請大家幫忙。

+0

這些都爲我返回1。對於慣例,你應該使用'/'而不是'#' – Jaime

+0

謝謝,使用'/'很有幫助。但是現在,當我嘗試搜索2個俄語單詞時,使用相同的方案,它再次返回int(0)。例如,在'ОдинДва'字符串中搜索'/одиндва/ i'會返回int(0)。 – Ortophius

回答

1

如果你想檢查大小寫敏感的,你必須刪除i

$page = "Test"; 
$page1 = "test"; 
var_dump(preg_match("/^test/", $page)); // int(0) 
var_dump(preg_match("/^test/", $page1)); // int(1) 

如果你想查詢個案 nsensitive你必須添加i

$page = "Test"; 
$page1 = "test"; 
var_dump(preg_match("/^test/i", $page)); // int(1) 
var_dump(preg_match("/^test/i", $page1)); // int(1) 

演示:http://ideone.com/Ab9nrs

我想你的代碼上3v4l.org,它看起來對大多數PHP版本好:https://3v4l.org/5UeCu

0

該代碼在PHP 7.1.2和5.3.4中爲兩行返回「int(1)」。要麼你運行的是PHP版本,其中preg_match有bug,或者你的兩個preg_match表達式中有一個看不見的控制字符,而你根本看不到它。

+0

我建議你3v4l.org。您可以在許多版本的PHP上測試代碼:https://3v4l.org/5UeCu –

相關問題