我有一個簡單的PHP數組:通配符搜索在PHP
$array = array('Michael','Marian','Martina');
我有以下功能來搜索字符串開頭的「MI」:
$array = preg_grep("/^Mi.*/", $array);
1)如何修改正則表達式來搜索字符串的任何部分,而不僅僅是字符串的開始?例如搜索ar
將返回Marian
2)如何使它不區分大小寫?例如搜索AR
也將返回Marian
我是新來的正則表達式。謝謝
我有一個簡單的PHP數組:通配符搜索在PHP
$array = array('Michael','Marian','Martina');
我有以下功能來搜索字符串開頭的「MI」:
$array = preg_grep("/^Mi.*/", $array);
1)如何修改正則表達式來搜索字符串的任何部分,而不僅僅是字符串的開始?例如搜索ar
將返回Marian
2)如何使它不區分大小寫?例如搜索AR
也將返回Marian
我是新來的正則表達式。謝謝
很簡單,您可以更改您的正則表達式模式並刪除指定它必須是字符串開頭的^
。使用i
修飾符可以實現不區分大小寫。
$matching_letters = 'ri';
$array = preg_grep("/{$matching_letters}/i", $array);
// Marian
編輯:你也可以在這種情況下刪除.*
(S),只是匹配的字母。
爲了將來的參考,Regex101.com和PHPLiveRegex.com會爲你學習正則表達式的奇蹟。
非常感謝:) –
可以問正則表達式中{}'的用法是什麼? –
這是一個PHP構造,用於插入上面的變量 - 純粹是爲了方便您將信件換入和換出。這與做「/」是一樣的。 $ matching_letters。 「/ I」' –
1)您的正則表達式匹配「起始字符串」錨,^
。要匹配任何地方,只需刪除錨點。
2)使用不區分大小寫的修飾符。這些是在最後的斜線後面出現的,可以在這裏找到:http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php。例如:$array = preg_grep("/^Mi.*/i", $array);
刪除'^'並添加'i'修飾符。另請參閱PCRE手冊條目http://www.php.net/manual/en/pcre.pattern.php – PeeHaa
哇。任何正則表達式教程都會告訴你。谷歌很多? – Rudie