我下面有一个json
{“ name”:“ abc”,“ config”:{“ key”:1,“ value”:“ one”,“ detail”:{“ message”: “测试”}}}
我需要使用正则表达式获取整个配置元素,即 "config":{"key":1,"value":"one","detail":{"message": "testing"}}
,我不想使用任何json解析器,该配置可以包含任意数量的嵌套元素
我尝试使用正则表达式模式- "config":{.*}
,但由于贪婪,它一直获取到最后}
非常感谢您的帮助
答案 0 :(得分:2)
答案 1 :(得分:1)
好的。我能够得到一个可行的解决方案,但是需要两个正则表达式来完成。
第一步,抢占"config"
之后的所有内容。使用捕获组1的内容:
"config":({.*})
第二步,使用递归正则表达式匹配平衡结构,在“平衡结构”部分中对此here进行更多检查。它使用递归来找到与"config":
之后的开头大括号相对应的结尾大括号。使用匹配1的内容:
{(?>[^{}]|(?R))*}