Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!

Как составить регулярное выражение для подсчёта не экранированных круглых скобок?

Коллеги, доброго времени суток! Чего-то я никак не соображу, как правильно составить регулярку которая бы посчитала (выделила) количество выражений в круглых скобках, за исключением экранированных скобок. Помогите пожалуйста её составить...

Пример, исходная строка: aa(bb)(cc)dd\(ee\)(ff)(gg\(hh\)ii)jj()kk(\(\)) Нужно выделить из неё группы: "b", "c, "f", "g-h-i" (как одну группу). Соотв. группу "e" игнорируем, пустые круглые скобки (после "j") тоже, но при этом последние (после "k") круглые скобки должны попасть в выборку, т.к. в них содержится текст (выражение). Иначе говоря, смысл следующий: выбрать выражения в круглых скобках, между которым содержится хотя бы 1 символ (любой), при этом экранированная круглая скобка (т.е. круглая скобка перед которой стоит "слеш") считается простым символом.
  • Вопрос задан
  • 154 просмотра
Решения вопроса 2
saboteur_kiev
@saboteur_kiev
software engineer
регулярка - это инструмент, а не магия. не нужно использовать его там, где он не нужен.
В данном случае, одна регулярка вряд ли справится. На вашем месте я бы сперва несколько раз поправил бы строку. Например удалил бы экранированные скобки и пустые предварительно, а потом уже можно применять регулярку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы