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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽