你可以使用正则表达式和Java代码来实现身份证号码的脱敏,只保留后四位。以下是一个示例代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String idCard = "123456789012345678";
        String regex = "(\\d{15})(\\d{3}|\\d{2}[A-Za-z0-9])";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(idCard);
        
        if (matcher.matches()) {
            String maskedIdCard = matcher.replaceFirst("**** **** **** **** $2");
            System.out.println(maskedIdCard);
        } else {
            System.out.println("Invalid ID card number");
        }
    }
}

在这个示例中,我们使用正则表达式 (\d{15})(\d{3}|\d{2}[A-Za-z0-9]) 来匹配身份证号码。其中,\d 表示数字,{n} 表示前面的元素重复 n 次。

然后,我们使用 replaceFirst() 方法将匹配到的身份证号码脱敏,只保留后四位,并使用 **** **** **** **** $2 替换原始的身份证号码。$2 表示正则表达式中的第二个捕获组,即后四位的部分。

最后,我们输出脱敏后的身份证号码。

请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体需求进行修改。另外,身份证号码的规则可能会有一些变化,你可能需要根据实际情况来调整正则表达式


原文地址: https://www.cveoy.top/t/topic/hY3J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录