正则表达式:捕获括号内的任何内容,也包括嵌套括号
Regex: capture anything within parenthesis, also nested parenthesis
我知道这似乎是一个重复的问题,但相信我,我搜索并尝试过但没有找到匹配的解决方案,所以希望你能帮助我。
我正在尝试将一些显示为“key(value) key(value)”的文本输出分析到哈希中,我已经成功地做到了这一点,但是只要我的值包含括号,捕获就不会完成,它只捕获到内部右括号。
regex used: (\S+?)\((.+?)\)
这是一个文本输入示例 ==> Regex101
第一个捕获组是键,第二个捕获组应该是值。
如您所见,值为 'mqconnectlog.so(LogExit)' 的 SCYEXIT 键仅捕获到内部右括号:'mqconnectlog.so(LogExit'
我也尝试了一些具有相同结果的变体:
(\S+?)\(([^)]+)\)
(\S+?)\(([^)]+(?=\)))\)
我认为这里最大的问题是我需要让两个捕获组都变得懒惰,因为在同一行上有多个 'key(value)' 对,否则它会捕获太多字符并且还会包含下一个字符'key(value)' 对来自同一行。
有什么办法可以解决吗?
我知道这似乎是一个重复的问题,但相信我,我搜索并尝试过但没有找到匹配的解决方案,所以希望你能帮助我。
我正在尝试将一些显示为“key(value) key(value)”的文本输出分析到哈希中,我已经成功地做到了这一点,但是只要我的值包含括号,捕获就不会完成,它只捕获到内部右括号。
regex used: (\S+?)\((.+?)\)
这是一个文本输入示例 ==> Regex101
第一个捕获组是键,第二个捕获组应该是值。 如您所见,值为 'mqconnectlog.so(LogExit)' 的 SCYEXIT 键仅捕获到内部右括号:'mqconnectlog.so(LogExit'
我也尝试了一些具有相同结果的变体:
(\S+?)\(([^)]+)\)
(\S+?)\(([^)]+(?=\)))\)
我认为这里最大的问题是我需要让两个捕获组都变得懒惰,因为在同一行上有多个 'key(value)' 对,否则它会捕获太多字符并且还会包含下一个字符'key(value)' 对来自同一行。
有什么办法可以解决吗?