仅在括号之间如何匹配未嵌套的组?

时间:2019-01-30 13:57:31

标签: c++ regex nested regex-group nested-groups

我正在尝试匹配单个括号内的字符链。

在以下示例中,仅前两行应返回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 :(得分:1)

您可以使用正则表达式负向超前功能来确保第一次关闭后没有括号。

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

这将产生所需的输出。第一组给出了括号内的序列