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