Как сопоставить вложенные группы только в скобках? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь сопоставить цепочки символов, которые находятся в пределах одной открывающей и закрывающей скобки.

В следующих примерах только первые две строки должны возвращать ab.Другие не должны совпадать с чем-либо

ab(ab)ac => ab
(ab)ndn => ab
ab(ab(ac)an) => void
ab((ab)ab)ab => void
ab(ab(abb))ab => void
ab(ab(ab(ab))ab) => void

Это насколько я могу понять, я не знаю, почему третья строка все еще совпадает.https://regex101.com/r/weGhVz/2

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать функцию отрицательного просмотра regex, чтобы убедиться, что после первого закрытия парентез отсутствует.

\((\w*)\)(?!\w*\))

Это дает желаемый результат.Первая группа дает последовательность в скобках

...