Найти строку в массиве регулярных выражений

Каков наилучший способ проверить строку в массиве шаблонов регулярных выражений?
Это что-то вроде 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

Решение

к несчастью 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

Единственным другим способом было бы, если бы вы написали более сложный шаблон, охватывающий все различные шаблоны, которые вы ищете, но это будет зависеть от вашего приложения и варианта использования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector