正则表达式的确很强大,对于字符串的处理,如果能够用正则处理,既简洁又方便。
在对于用户的一些隐私信息需要用“*”号代替。例如:银行卡、手机号、身份证号、IMSI等;
表示为:
手机号:138****3456;
身份证:410211********4584;
银行卡:4367***********6927
......
网上最多的就是用字符串的截取:截取前几位加上“*”号,然后在截取后几位,拼装在一起。虽然可以达到效果,但是代码很长,占用内存。
其实可以用正则直接处理:
"18812345678".replaceAll("(\\d{3}).*(\\d{4})", "$1****$2")
(\\d{5}).*(\\d{5})---->这个正则表达式的含义:取前3个数字与最后4个数字,把中间的内容全部替换为“*”号;
$1取第一个小括号内的内容,$2取第二个小括号内的内容;“.”匹配所有字符,“*”匹配所有个数,这样,大家应该很容易就明白了吧。