regex - 正则表达式:捕获括号内的任何内容,也包括嵌套括号
问题描述
我知道这似乎是一个重复的问题,但相信我,我搜索并尝试了但没有找到匹配的解决方案,所以希望你能帮助我。
我正在尝试将一些显示为“键(值)键(值)”的文本输出分析为哈希,我已经成功地做到了,但是每当我的值包含括号时,捕获不完整,它只捕获直到内部右括号。
regex used: (\S+?)\((.+?)\)
这是文本输入 ==> Regex101的示例
第一个捕获组是键,第二个捕获组应该是值。如您所见,值为 'mqconnectlog.so(LogExit)' 的 SCYEXIT 键只捕获到内部右括号:'mqconnectlog.so(LogExit'
我还尝试了一些具有相同结果的变体:
(\S+?)\(([^)]+)\)
(\S+?)\(([^)]+(?=\)))\)
我认为这里最大的问题是我需要使两个捕获组都变得懒惰,因为同一行上有多个“键(值)”对,否则它会捕获太多字符并且还包括来自下一个键(值)的字符)' 对来自同一行。
有没有办法解决这个问题?
解决方案
推荐阅读
- c# - 在 WebControl 的属性中看不到事件(如 DoubleClick)
- appium - Cucumber-jvm @after 与 Appium 驱动程序
- powerbi - 用于频繁更改数据的 DirectQuery 与 Import
- http - Flutter 错误:类型“AddressInfo”不是类型转换中“String”类型的子类型
- python - 优化字典循环求和值
- python-3.x - 如何连接到 API?
- javascript - 显示/隐藏多个元素的过渡
- python - 在 SciPy 中搜索函数 `LinearNDInterpolator` 的源代码
- python - 解析 HTML 页面以获取内容
和标签
- xml - 可以从 CLI 实际运行 xquery 吗?