Привет.
Какой оптимальный способ извлечь из строки подстроку, которая находится между сбалансированными скобками, учитывая то, что внутри этой строки могут быть скобки?
Пример:
input: “text (a (b) c ((d)))”
output: (a (b) c ((d)))
Я вижу такие варианты, но ни один из них не лишен недостатков:
- Рекурсивные регулярки из xRegExp, но это лишний пакет
- Обычные регулярки, но там будет конечная глубина вложенности скобок — как напишешь регулярку
- Линейный проход по строке с подсчетом текущего баланса скобок, но нужно внимательно следить за индексами, потенциальный источник багов