我需要在java程序中附加/替换以下模式。
原始字符串:
{ "values" : ["AnyValue1", "TestValue", "Dummy", "SomeValue"], "key" : "value" }
[编辑:此值数组中可以有n个值]
我需要用“\u val”附加所有值
{ "values" : ["AnyValue1_val", "TestValue_val", "Dummy_val", "SomeValue_val"], "key" : "value" }
我想知道我是否可以用regex替换而不是遍历循环?
内容位于字符串中:
String content = "{ \"values\" : [\"AnyValue1\", \"TestValue\", \"Dummy\", \"SomeValue\"], \"key\" : \"value\" }";
2条答案
按热度按时间zysjyyx41#
我已经研究你的问题好几分钟了。我想出了一个解决办法。它可能不是最好的,因为我不太习惯使用regex。
概念
这是一个两步解决方案:
我们需要首先获得[…]之间的子串的原因是,如果我们直接应用第二步,那么“values”、“key”和“value”也会改变。这不是你想要的。
代码
输出
我希望我帮助过你。未来可能会有更好的方法
java.util.regex.Pattern
或者java.util.regex.Matcher
可以更轻松地完成任务的类。也许它们可以在一个命令中替换所有的子字符串。但是,我不经常使用这些类,所以我不熟悉它。如果您对所使用的正则表达式有任何疑问,或者如果有人想对我的答案提出任何改进,请发表评论。
9ceoxa922#
试试这个。
输出: