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

Java中基于大括号分割字符串的正则表达式求解

问题:分割JSON对象字符串为独立元素

原始字符串格式如下:

String str = "{\"name\":\"SachText_singleLineText\",\"value\":\"text project field\"},{\"name\":\"SachSlistSingle_singleSelect\",\"value\":\"s1\"},{\"name\":\"SachYesno_boolean\",\"value\":[\"1\"]}";

需求是将该字符串分割为以下独立的JSON对象元素:

[0] = {"name":"SachText_singleLineText","value":"text project field"}
[1] = {"name":"SachSlistSingle_singleSelect","value":"s1"}
[2] = {"name":"SachYesno_boolean","value":["1"]}

当前尝试的错误代码:

String[] projectfieldsValueArray = str.split("\\{\\{,\\}\\}");

正确的正则表达式及处理代码

你需要匹配的是两个JSON对象之间的分隔符:},{,这才是大括号包裹的独立对象的分界点。注意正则中需要转义{和}这两个特殊字符。

分割代码

String[] projectfieldsValueArray = str.split("\\},\\{");

补全首尾字符

分割后第一个元素会缺失开头的{,最后一个元素会缺失结尾的},需要手动补全:

// 补全第一个元素的开头大括号
projectfieldsValueArray[0] = "{" + projectfieldsValueArray[0];
// 补全最后一个元素的结尾大括号
int lastIdx = projectfieldsValueArray.length - 1;
projectfieldsValueArray[lastIdx] = projectfieldsValueArray[lastIdx] + "}";

错误原因说明

你之前写的\\{\\{,\\}\\}是匹配{{,}}这种字符串,和实际的分隔符完全不符,所以无法正确分割目标字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:37:34