Здравствуйте, имею задачу получить список содержимого между пар (...) скобок в любом выражении. Т.е например: ( тест1(тест2(тест3)). В данном примере я должен получить выражения тест2(тест3) и тест3, но не получить тест1, т.к нет соответствующей закрывающей скобки. (аналогично должно быть и с открывающими, если нет пары, выражение игнорируется.) Если я правильно понял, конечно.
Задание дословно:
1)проверить, правильно ли в тексте расставлены круглые кобки(т.е находится ли правее каждой открывающейся скобки закрывающаяся и левее закрывающейся - открывающаяся) 2) вывести содержимое правильно проставленных скобок в виде списка.
На данный момент составил что-то вроде этого: ((?:[^()]+|\g<2>*)) ссылка на regex101 для удобства. Но я делаю что-то не так, вроде тут нужно использовать рекурсию, но я не могу понять как. Подскажите, как правильно?
Мне кажется, все куда проще...
Например, для №1 просто идете по порядку, для каждой открывающейся скобки прибавляете 1, для закрывающей - вычитаете... И следите, не опустится ли сумма ниже нуля :)
Что от вас хотят в №2 - я что-то не очень понял. Поясните подробнее - уверен, и тут регулярные выражения ни при чем...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть QTableView, нужно чтобы ее размеры подгонялись по размеру содержимогоНо не флаг Stretch в хедерах
Предположим, у меня есть std::vector<int> vec1 размера nТакже есть RandomAccessIterator begin и end, которые принадлежат другому вектору vec2 такого же размера
Нужно найти самое длинное слово в строкеBAЖНО! Без класса string! проблема в том что код, не работает