我有电话号码和电子邮件地址。我不想显示完整的信息 所以我在想使用Regex或MaskFormatter掩盖一些角色。
输入和所需结果
1) 9843444556 - 98*******6
2) test@mint.com - t***@****.com
我用String循环实现了这一点。但我确实想通过使用正则表达式或掩码来实现这一点。请你告诉它吗?
答案 0 :(得分:23)
电话:
String replaced = yourString.replaceAll("\\b(\\d{2})\\d+(\\d)", "$1*******$2");
电子邮件:
String replaced = yourString.replaceAll("\\b(\\w)[^@]+@\\S+(\\.[^\\s.]+)", "$1***@****$2");
说明:电话
\b
边界有助于检查我们是数字的开头(还有其他方法可以做到这一点,但是这样做会这样做。)(\d{2})
捕获两个数字到第1组(两个第一个数字)\d+
匹配任意数量的数字(\d)
捕获第2组的最后一位数字$1
和$2
包含与第1组和第2组匹配的内容说明:电子邮件
\b
边界有助于检查我们是否是角色的开头(还有其他方法可以做到这一点,但是这样做会这样做。)(\w)
将一个字词char捕获到第1组[^@]+
匹配一个或多个非@
\S+
匹配一个或多个不是空白字符的字符(\.[^\s.]+)
捕获一个点以及任何不属于第2组的点或空格的字符$1
和$2
包含与第1组和第2组匹配的内容