gpt4 book ai didi

java - 匹配多个括号之间的字符串

转载 作者:行者123 更新时间:2023-11-30 08:52:28 25 4
gpt4 key购买 nike

我有这个很长的 JSON 字符串。我想过滤它并只获取第一个括号之间的数据。问题是,我有许多其他括号,因此我的正则表达式模式无法正常工作。

这是 JSON 字符串:

    String jsondata = "["
+"{"
+ "test: 63453645"
+"date: 2016-07-17"
"{"
+ "id:534534"
+"}"
+ "blank : null"
+ "flags : null"
+ "}"
+"{"
+ "test: 543564236"
+"date: 2014-07-17"
+"{"
+ "id:6532465"
+"}"
+ "blank : null"
+ "flags : null"
+ "}"
+"]";

pattern = "\\{[^{}]*\\}";
pr = Pattern.compile(pattern);
math = pr.matcher(jsondata);
if (math.find()) {
System.out.println(math.group());
}
else
System.out.println("nomatch");

我的模式的问题是它只打印到 id: 之后的第一个 ,但我希望它在最后一个 } 在 flags: null 之后。

我只想打印第一个匹配项,即不是后面的字符串,因为开始和结束的字符也是相同的,这就是为什么我使用 if 语句而不是 while 循环的原因。

有什么建议吗?谢谢!

带有多个括号的正则表达式似乎是一项非常困难的任务。我可以匹配最后一个字符串吗?从 { 开始到 flags : null?

最佳答案

正如我在评论中所说,我通常使用 JSON-Simple .很棒的教程,decoding .

看起来有点像:

JSONObject obj = JSONValue.parse(jsondata);
obj.get("test");

附言。我确实在您的 json 数据中看到了一些错误,请使用 jsonlint验证您的 json 格式是否正确...

关于java - 匹配多个括号之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com