具有定义的替换编号Java的regex ReplaceAll
我有一个电子邮件屏蔽的方法。我需要在@
用星星签名之前替换电子邮件中的字母。但问题是总有5颗星,第一个和最后一个元素不应该被隐藏。
示例输入为:someemail@gmail.com
。输出:s*****l@gmail.com
因此,电子邮件中的第一个和最后一个字符之间有多少个字符并不重要。这是我的密码:
public static String maskEmail(String inputEmail){
return inputEmail.replaceAll("(?<=.).(?=[^@]*?.@)", "*");
}
我的方法屏蔽了这封电子邮件,但问题是我不知道如何准确地放置5颗星
# 1 楼答案
请尝试以下代码:
# 2 楼答案
这个怎么样:
或者这个:
请注意,这仅在@前面至少有2个字符时有效
# 3 楼答案
只取第一个字母并将其与五个星号和从
@
前面的字母开始的子字符串连接起来要简单得多: