Java替换所有正则表达式

Java替换所有正则表达式,java,regex,regex-lookarounds,Java,Regex,Regex Lookarounds,我正在尝试用java编写一个replaceAll,它可以将json替换为数组中的json,而不是对象中的json,下面是一个示例: test:[{\"asdf\":\"asasdd\"}] 我的目标是将测试对象中的所有}替换为数组中的},但不影响任何其他} (我使用的json是有效的(与下面的json不同),但我一直在使用下面的字符串进行测试,因为我希望它会有相同的结果,而且要短得多) //预期结果 String test = "[asdfasdf}test:[{\"asdf\":\"asas

我正在尝试用java编写一个replaceAll,它可以将json替换为数组中的json,而不是对象中的json,下面是一个示例:

test:[{\"asdf\":\"asasdd\"}]
我的目标是将测试对象中的所有}替换为数组中的},但不影响任何其他}

(我使用的json是有效的(与下面的json不同),但我一直在使用下面的字符串进行测试,因为我希望它会有相同的结果,而且要短得多)

//预期结果

String test = "[asdfasdf}test:[{\"asdf\":\"asasdd\"}].sdfasdfsadfsdf, test:[{\"asdf\":\"asasdd\"}]sdfsdf } ";


System.out.println(test.replaceAll("(?<=[test:{])}", "}]")); // 
String test=“[asdfasdf}测试:[{\'asdf\':\'asasadd\'}]。sdfasdfsadfsdf,测试:[{\'asdf\':\'asadd\'}]sdfsdf}”;
System.out.println(test.replaceAll((?这应该可以:

(?<=\btest:){[^}]*}

(?使用适当的JSON解析API。据我所知,每个JSON解析API都不会工作,因为供应商不会在数组中返回结果,即使它通常是一个数组。什么是所需的输出?您知道有任何库会隐式地将一个对象转换为一个数组,如果它在一个数组中?字符串测试=”[asdfasdf}测试:[{\'asdf\':\'ASASSDD\'}].sdfasdfsadfsdf,测试:[{\'asdf\':\'ASASSDD\'}]sdfsdf}”;
(?<=\btest:){[^}]*}
String input  = "[asdfasdf}test:{\"asdf\":\"asasdd\"}.sdfasdfsadfsdf, test:{\"asdf\":\"asasdd\"}sdfsdf } ";
System.out.println(input.replaceAll("(?<=\\btest:)\\{[^}]*\\}","[$0]"));
  (?<=                     look behind to see if there is:
    \b                       the word boundary
    test:                    'test:'
  )                        end of look-behind
  {                        '{'
  [^}]*                    any character except: '}' (0 or more times)
  }                        '}'