import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args){
/**
* 隐藏电话号码中间四位
* 第一种写法,String.replaceAll()方法
* $1表示正则表达式 (\d{3})\d*([0-9a-zA-Z]{4}) 的第一个括号内的表达式匹配到的内容,
* 在本例中,$1表示182,$2表示6293,故最终结果为$1****$2,即182****6293
*/
String phoneNum = "18251486293";
phoneNum = phoneNum.replaceAll("(\\d{3})\\d*([0-9a-zA-Z]{4})","$1****$2");
System.out.println("phoneNum的结果为:" + phoneNum);
/**
* 隐藏身份证中间四位
* 第二种写法,Matcher.replaceAll方法
* String.replaceAll()的内部实现就是Pattern.compile(regex).matcher(this).replaceAll(replacement)
*/
String credentialsNum = "420222199704138888";
Pattern credentialsPattern = Pattern.compile("(\\d{6})\\d*([0-9a-zA-Z]{4})");
Matcher credentialsMatch = credentialsPattern.matcher(credentialsNum);
credentialsNum = credentialsMatch.replaceAll("$1********$2");
System.out.println("credentialsNum的结果为:" + credentialsNum);
}
}
运行打印结果:
phoneNum的结果为:182****6293
credentialsNum的结果为:420222********8888
正则表达式隐藏(*)手机号或身份证号
最新推荐文章于 2024-07-14 14:30:45 发布