У меня есть следующие выражения:
KNOWN_TOKEN=((value operator value) operator value)
operator OTHER_KNOWN_TOKEN=value
operator KNOWN_TOKEN2=(value operator (value operator value));
Я пытаюсь найти регулярное выражение ac #, чтобы вернуть мне все выражение с одинаково совпадающими закрытыми скобками по мере их открытия.Это означает, что для KNOWN_TOKEN
мне нужно только ((value operator value) operator value)
, для OTHER_KNOWN_TOKEN
мне нужно только value
и для KNOWN_TOKEN2
мне нужно (value operator (value operator value))
.
Я пробовал различные варианты (\([^(]+\))
, ноони соответствуют только «самому низкому» набору «парантезов» и, кроме того, они соответствуют дополнительному (т. е. для KNOWN_TOKEN2
они соответствуют дополнительным конечным скобкам).
Кроме того, я нашел несколько подсказок поЯ делаю это в несколько повторяющихся шагов и изменяю исходный текст, но я бы предпочел сделать это в одном регулярном выражении.Есть намеки?
Спасибо!