c++ - 如何仅匹配括号之间的嵌套组?

标签 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

这是我所能达到的 atm 我不知道为什么第三行仍然匹配。 https://regex101.com/r/weGhVz/2

最佳答案

您可以使用正则表达式否定先行功能来确保在第一次关闭后没有括号。

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

这会产生您想要的输出。第一组给出括号内的序列

关于c++ - 如何仅匹配括号之间的嵌套组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442259/

相关文章:

c++ - 当 size_t 类型的变量 t 被赋予负值时,它的实际值是多少?(可以是 unsigned int 而不是 size_t)

javascript - 用反斜杠替换所有未转义的字符匹配

python - 拆分字符串而不删除分隔符,但抑制空捕获组

c - 我的 C 书中的神奇数字 127

Python嵌套列表(二维数组)引用

c++ - 类名没有命名类型

c++ - cmake install "noconfig"脚本有什么用? IE。 "XXXTarget-noconfig.cmake"

iPhone如何验证字符串只是Objective-c中的图像名称或图像url?

Azure VSTS : Nesting variables to get the value of a keyvault's secret

c++ - 在 Mac OS X 上为 XCode 使用 Eigen