Есть ли способ сделать это, не используя оператор управления ошибкой на @preg_match
? :)Как узнать, является ли строка регулярным выражением PHP?
Поскольку PHP требует, чтобы образцы завернуты между характером, я думал сделать это следующим образом:
- Получить первый символ.
Найти последнее вхождение этого символа в строке с:
$rpos = strrpos($string, $string[0]);
Получить список модификаторов:
$mods = substr($rpos, strlen($string));
- Find out if there are any invalid modifiers in this list. Если есть return false, в противном случае regex окажется действительным.
Насколько надежным является решение? Есть ли лучшие?
Не надежный на всех – zerkms
Можете ли вы привести пример строки, где он потерпит неудачу? –
Вы можете использовать filter_var() с опцией FILTER_VALIDATE_REGEXP – aurbano