我想用
掩盖Java中的电子邮件地址some-email@domail.com
到
s********l@domail.com
- 屏蔽本地名称,不仅包括第一个和最后一个字母 我想要更换符号的*匹配数量
我需要一些像
这样的表达方式 /^(.)(.*)(.)@(.*)$/
并在第2部分中用*
替换每个符号我如何用Java做到这一点?
答案 0 :(得分:2)
您可以将此正则表达式与String#replaceAll
:
String email = "some-email@domail.com";
String masked = email.replaceAll("(?<=.).(?=[^@]*?.@)", "*");
//=> s********l@domail.com
答案 1 :(得分:0)
这可以使用正则表达式(?&lt; =。{1})。(?= [^ @] *?。@)。
下面的分叉:
。{1} 匹配任何字符(行终止符除外)
(适用?= [^ @] ?@) 强> 匹配下面列表中不存在的单个字符[^ @] ? *?量词 - 在零和无限时间之间匹配,尽可能少,根据需要扩展(懒惰) @匹配字符@字面(区分大小写)