上代码:
/**
* @Description:
* @param input 替换前原始字段
* @param fields 需要替换字段的名称,可以写多个,替换后的值是 ******
* @return java.lang.String
*/
public static String hiddenSecretField(String input, List<String> fields) {
final String SECRET_SAFE_WORD = "$1******$2";
String tmp = input;
for (String field : fields) {
String regStr = String.format("(\"%s\"\\s*:\\s*\")[^\"]+(\")", field);
tmp = input.replaceAll(regStr, SECRET_SAFE_WORD);
}
return tmp;
}
问题点:
需要标准格式的json字符串。至少要满足 “field”:“value” 一个键值对中没有回车字符。
参考文章:
正则分组替换