我有电话号码和电子邮件地址。我不想显示完整的信息。
所以我在想使用Regex或MaskFormatter掩盖某些字符。
输入和预期结果
1) 9843444556 - 98*******6
2) test@mint.com - t***@****.com
我已经用String循环实现了这一点。但是正是我想通过使用正则表达式或掩码来做到这一点。你能告诉我吗?
电话:
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组匹配的内容
谢谢,很高兴它有所帮助。:)
@ zx81,我想屏蔽字符串,但是可以使用正则表达式匹配器吗?