Java 正则表达式对数据脱敏处理

米斯特程序猿 2021年06月24日 657次浏览
  • 做开发难免有时需要对数据进行脱敏处理,这里给出一个正则表达式做参考
public class StringTest {
    public static void main(String[] args) {
        String str="12345678901";
        String regex="(.{3}).*(.{3})";// 保留前3个字符、后3个字符
        String r="$1*****$2";// $1第一个表达式,$2 第二个表达式,中间星号可使用任意值
        System.out.println(str.replaceAll(regex,r));
    }
}

  • 以下代码来自博主BloodLitchi,感觉比自己的好,一并贴出来
public class DesensitizationUtil {
	// 手机号码中间四位数字脱敏
    public static String mobileEncrypt(String mobile) {
        return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    }
    //身份证号脱敏
    public static String idEncrypt(String id) {
        return id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*");
    }
}