检查正则表达式模式数组中字符串的最佳方法是什么? 有点像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;
}
}
答案 0 :(得分:0)
不幸的是,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);
唯一的另一种方法是,如果您编写了一个更复杂的模式来包含您正在搜索的所有不同模式,但这取决于您的应用程序和用例。