Я пытаюсь проверить, что строка содержит регулярное выражение и что она действительна в PHP. Обычно, я бы сделать это следующим образомValidate regex without throwing warning
<?php
@preg_match($string, '') !== false;
Это генерирует предупреждение, что это хорошо, потому что мы используем @
подавить его. Однако возникают проблемы, когда мы используем set_error_handler
для улавливания ошибок, поскольку обработчик все равно будет запущен, несмотря на подавитель @
.
Я хотел бы сделать что-то похожее на предоставленный код без предупреждения.
Предупреждение выброшен является:
preg_match(): Delimiter must not be alphanumeric or backslash
Вы говорите «ловить ошибки», вы имеете в виду исключения? Если это так, просто заверните вызов 'preg_match' в блок try/catch. –
preg_match не генерирует исключение, он просто генерирует ошибку PHP. – Nathaniel