如题, ,{a:1, b:key, c:3},{a:1, b:key1, c:3},{a:1, b:key2, c:3},{a:1, b:key3, c:3},{a:1, b:key4, c:3},
我有一组字符串, 由N个json格式的字符串组成,每一组json字符串其中有一个属性是唯一的,也就是上面的key.求一正则,能够根据key截取出key所在的json字符串.
我有一组字符串, 由N个json格式的字符串组成,每一组json字符串其中有一个属性是唯一的,也就是上面的key.求一正则,能够根据key截取出key所在的json字符串.
String s = ",{a:1, b:key, c:3},{a:1, b:key1, c:3},{a:1, b:key2, c:3},{a:1, b:key3, c:3},{a:1, b:key4, c:3},";
Matcher m = Pattern.compile("[{][^{}]*?key[^{}]*[}]").matcher(s);
while (m.find()) {
System.out.println(m.group());
}或者,你直接分割也可以
String s = ",{a:1, b:key, c:3},{a:1, b:key1, c:3},{a:1, b:key2, c:3},{a:1, b:key3, c:3},{a:1, b:key4, c:3},";
String[] sa = s.replaceAll("^[,]", "").split("(?<=[}]),"); //去掉开头的逗号,再按},分割
for (String ss : sa) {
System.out.println(ss);
}
String key = "key1"; //取key1所在的json字符串
String s = ",{a:1, b:key, c:3},{a:1, b:key1, c:3},{a:1, b:key2, c:3},{a:1, b:key3, c:3},{a:1, b:key4, c:3},";
Matcher m = Pattern.compile(String.format("[{][^{}]*?%s[^{}]*[}]", key)).matcher(s);
while (m.find()) {
System.out.println(m.group());
}