【发布时间】:2021-08-05 16:43:57
【问题描述】:
假设有一个这样的字符串:
String str = "Lorem Ipsum Neque porro <userEnv.value1> quisquam est qui <userEnv.value2> dolorem
ipsum quia <userEnv.value2> dolor sit amet, consectetur, adipisci velit..";
我有一个这样的 JSON:
"userEnv":{
"value1":"important info",
"value2":"other important info",
"value3":"even other important info"
}
我需要找到一种巧妙的方法来替换存储在 JSON userEnv 中的字符串中的每个值。
我考虑做如下事情:
JsonObject jsonObject = Json.createObject();
jsonObject.put(
"userEnv",
"\"value1\":\"important info\",\"value2\":\"other important info\",\"value3\":\"even other important info\");
Pattern pattern = Pattern.compile(".*[<](.*)[>].*");
Matcher matcher = pattern.matcher(str);
int groupPointer = 0;
while (matcher.find()){
if (jsonObject.get(matcher.group(groupPointer))!=null){
str = str.replaceAll(
".*<"+matcher.group(groupPointer)+">.*",
jsonObject.get(matcher.group(groupPointer))
);
}
}
但这不起作用,没有找到任何组,也许我的正则表达式表达不好。
另外,我不确定 JSON 对象的创建。
也许我应该明天发这个,而不是今晚太累了。
【问题讨论】:
标签: java json string replace matcher