Java替换所有正则表达式
我正在尝试用java编写一个replaceAll,它可以将json替换为数组中的json,而不是对象中的json,下面是一个示例: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
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)
} '}'