要求:

对于每个键匹配指定常量的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/

10-10 08:00