在正则表达式数组中查找字符串

时间:2017-09-08 23:35:11

标签: php regex search

检查正则表达式模式数组中字符串的最佳方法是什么? 有点像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;
    }
}

1 个答案:

答案 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);

https://eval.in/858431

唯一的另一种方法是,如果您编写了一个更复杂的模式来包含您正在搜索的所有不同模式,但这取决于您的应用程序和用例。