You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript正则获取(test)后的完整JSON?

解决正则提取完整嵌套JSON的问题

嘿,我来帮你搞定这个问题!你之前的正则只拿到部分JSON,核心原因是用了非贪婪量词+?——它会在遇到第一个闭合的}就停止匹配,可你的JSON里嵌套了对象和数组,自然就截断了。

方案1:针对你的特定场景((test)后紧跟完整JSON)

把正则改成贪婪匹配,同时确保能匹配所有字符(包括换行):

/\(test\)(\{[\s\S]+\})/gi
  • [\s\S]:匹配任意字符(空格+非空格,覆盖所有情况,包括换行)
  • +:贪婪模式,会一直匹配到最后一个},刚好对应最外层JSON的闭合括号,这样就能拿到完整的JSON内容。

方案2:更严谨的嵌套括号匹配(支持PCRE等引擎)

如果你的正则引擎支持平衡组/递归匹配(比如PHP、Python的re模块(需开启对应标志)、Regex101里的PCRE模式),可以用这个更可靠的正则,能处理任意层级的嵌套括号:

/\(test\)(\{(?:[^{}]|(?R))*\})/gi
  • (?:[^{}]|(?R)):要么匹配非括号的普通字符,要么递归匹配整个括号结构,完美识别嵌套的{}和[],确保只提取最外层的完整JSON。

测试你给出的字符串,用这两个正则都能正确提取到完整的JSON:

{"data":{"test1":true,"test2":0,"test3":false,"test4":"","test5":""},"testarray":[{"value":"test","alt":"test-1"}]}

内容的提问来源于stack exchange,提问作者SPQRInc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:19:51