Здравствуйте, имею задачу получить список содержимого между пар (...) скобок в любом выражении. Т.е например: ( тест1(тест2(тест3)). В данном примере я должен получить выражения тест2(тест3) и тест3, но не получить тест1, т.к нет соответствующей закрывающей скобки. (аналогично должно быть и с открывающими, если нет пары, выражение игнорируется.) Если я правильно понял, конечно.
Задание дословно:
1)проверить, правильно ли в тексте расставлены круглые кобки(т.е находится ли правее каждой открывающейся скобки закрывающаяся и левее закрывающейся - открывающаяся) 2) вывести содержимое правильно проставленных скобок в виде списка.
На данный момент составил что-то вроде этого: ((?:[^()]+|\g<2>*)) ссылка на regex101 для удобства. Но я делаю что-то не так, вроде тут нужно использовать рекурсию, но я не могу понять как. Подскажите, как правильно?
Мне кажется, все куда проще...
Например, для №1 просто идете по порядку, для каждой открывающейся скобки прибавляете 1, для закрывающей - вычитаете... И следите, не опустится ли сумма ниже нуля :)
Что от вас хотят в №2 - я что-то не очень понял. Поясните подробнее - уверен, и тут регулярные выражения ни при чем...
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники