2012-05-07 5 views
2

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

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

<[^>]*>\xA9 

разбирает на:

<[^>]*> 
\xA9 

, в котором первый HTML один матч и второй один матч символ авторского права.

Редактировать: Я нашел аналогичный вопрос, заданный в SO, утверждая, что это возможно. Здесь я имею в виду регулярное выражение только в JavaScript ECMA-262.

ответ

2

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

В общем, грамматика регулярных выражений относительно сложна. Чтобы понять, насколько он сложный, взгляните на парсер в источнике класса Java Pattern.

Смежные вопросы