класс php или регулярное выражение для проверки самого шаблона регулярного выражения (по крайней мере, проверка разделителей / синтаксиса ..) - PullRequest
0 голосов
/ 17 июля 2011

Я написал класс valitor с достаточным количеством регулярных выражений.
Используя Eclipse Regex Util, он может сообщать о «ошибках» шаблона регулярных выражений, поэтому мне интересно, смогу ли я найти регулярное выражение или подкласс php, чтобы проверить, что вызываемый шаблон регулярного выражения является правильным шаблоном регулярного выражения вложение специального метода в классе, поверх проверки / тестирования их унитарно.

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Самый простой способ - просто использовать preg_match() с регулярным выражением в пустой строке; если возвращается False, произошла ошибка, означающая, что шаблон недействителен.

0 голосов
/ 17 июля 2011

Как правильно подсказывает Тим, лучший способ проверить регулярное выражение синтаксиса PCRE - это попытаться скомпилировать его (пропустив через preg_match()).Его следует выбрать как лучший ответ (я уже дал ему +1).

Однако, если кому-то интересно посмотреть, как можно разложить синтаксическое регулярное выражение PCRE, чтобы проверить правильность соответствия (возможно,вложенные) группы скобок, я написал утилиту JavaScript, которая делает именно это.Сценарий также довольно полезен: он позволяет веб-странице отображать регулярные выражения, так что пользователь может навести курсор мыши на любую скобку, чтобы выделить ее и увидеть соответствующую скобку.Он идентифицирует нумерованные группы захвата с помощью всплывающей подсказки и выделяет любые ошибочные несоответствующие несоответствующие скобки красным цветом.

Динамический (?: Выделение регулярных выражений) ++ с Javascript!

Вот страница документации, которая описываетрегулярные выражения, используемые скриптом:
DynamicRegexHighlighter

А вот страница тестера, где вы можете применить динамическое выделение к любому регулярному выражению:
DynamicRegexHighlighterTester

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

Это выпущено под лицензией MIT, и проект размещен на GitHub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...