[英]Find string in array of regex
在正則表達式模式數組中檢查字符串的最佳方法是什么? 是類似preg_grep的東西嗎?
我需要這樣的結果:
$string = 'myFooString';
$patterns = [
'some(regex|foo)',
'my.+String',
'anotherRegex'
];
$isMatchWithAny = false;
foreach ($patterns as $pattern) {
if (preg_match('/' . $pattern . '/', $string)){
$isMatchWithAny = true;
break;
}
}
不幸的是, preg_grep
提供了與您要求的相反的功能,即單一模式但有一系列輸入: http : //php.net/manual/en/function.preg-grep.php
在這種情況下,您的示例代碼提供了您試圖實現的結果的最簡單結果:
$string = 'myFooString';
$patterns = [
'some(regex|foo)',
'my.+String',
'anotherRegex'
];
$isMatchWithAny = false;
foreach ($patterns as $pattern) {
if (preg_match('/' . $pattern . '/', $string)){
$isMatchWithAny = true;
break;
}
}
var_dump($isMatchWithAny);
唯一的其他方法是,如果編寫了更復雜的模式以包含要搜索的所有不同模式,但這將取決於您的應用程序和用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.