要求:
对于每个键匹配指定常量的Json字段,请用另一个常量替换值。
{"regular":"a", "sensitive":"b"}
参数“敏感”,“ *****”。
预期:
{"regular":"a", "sensitive":"*****"}
值周围可能有也可能没有双引号。替换常数总是两倍。 Json可能格式错误。 Java实现最好。
密钥比较不区分大小写。
最佳答案
您可以使用正向后面实现此目的:
public static void main(String[] args) {
String s = "{\"regular\":\"a\", \"sensitive\":\"b\"}";
String key = "sensitive";
String val = "****";
System.out.println(s.replaceAll("(?<=\"" + key + "\":\")(\\w+)", val));
key = "regular";
System.out.println(s.replaceAll("(?<=\"" + key + "\":\")(\\w+)", val));
}
O / P:
{"regular":"a", "sensitive":"****"}
{"regular":"****", "sensitive":"b"}
关于java - Java,正则表达式:用字段键替换Json中的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49146210/