正则表达式匹配手机号码,用星号代替中间数字

private static final String PHONE_NUMBER_REGEX = "^((13[0-9])|(14[5,7,9])|(15[^4,\\D])|(17[0,1,3,5-8])|(18[0-9]))\\d{8}$"; // 包括最新的170、171号段

public static String formatPhoneNumber(String args) {
    Matcher matcher = Pattern.compile(PHONE_NUMBER_REGEX).matcher(args);
    if (matcher.find()) {
        return matcher.group().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*");
    }
    return args;
}

你可能感兴趣的:(Java)