Является ли это возможным? Соответствие одинаковому количеству открывающих и закрывающих скобок - PullRequest
2 голосов
/ 10 марта 2010

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

Пример:

nothing: important, a b { c {{{ a another {{ nothing }} }}} }

или

one { two {{ error, forgot ending brace }}

Проблема в том, что я не знаю, сколько скобок я получу заранее. В первом примере мне нужно получить текст { c {{{ a another {{ nothing }} }}} }. Во втором мне нужно получить {{ error, forgot ending brace }}.

Возможно ли вообще создать соответствующее правило, которое будет это делать? (Я использую движок Qt Regex).

1 Ответ

8 голосов
/ 10 марта 2010

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

Однако - из комментария Дирка Воллмара - некоторые движки регулярных выражений имеют расширенную функциональность, например, .NET, который может сопоставлять скобки, используя так называемые «определения сбалансированных групп» .

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