[英]Showing email address as hint
我看過郵件服務顯示電子郵件ID為e*****e@gmail.com
,主要是在他們的恢復頁面中。
所以我試圖將example@gmail.com
替換為e*****e@gmail.com
。
是否可以單獨使用String#replace(String)
來實現它? 或者我應該使用一些REGEX來實現它。
感謝您提供寶貴的建議
搜索正則表達式:
\b(\w)\S*?(\S)(?=@)(\S+)\b
替換模式:
$1****$2$3****$4
碼:
String email = "anexample@gmail.com";
String repl = email.replaceFirst("\\b(\\w)\\S*?(\\S@)(\\S)\\S*(\\S\\.\\S*)\\b",
"$1****$2$3****$4");
//=> a****e@g****l.com
它可以通過replaceAll函數實現。
(?<!^).(?=.*?.@)
使用上面的正則表達式並將匹配的字符替換為*
String s = "example@gmail.com";
System.out.println(s.replaceAll("(?<!^).(?=.*?.@)", "*"));
輸出:
e*****e@gmail.com
更新:
使用以下正則表達式獲取輸出,如e*****e@g***l.com
String s = "example@gmail.com";
System.out.println(s.replaceAll("\\B.\\B(?=.*?\\.)", "*"));
輸出:
e*****e@g***l.com
你也可以嘗試沒有正則表達式
String email = "example@gmail.com";
int start = 1;
int end = email.indexOf("@") - 1;
StringBuilder sb = new StringBuilder(email);
StringBuilder sb1=new StringBuilder();
for(int i=start;i<end;i++){
sb1.append("*");
}
sb.replace(start, end, sb1.toString());
System.out.println(sb.toString());
出局:
e*****e@gmail.com
我建議使用indexOf
和substring
。 使用替換,您可以使用gmail@gmail.com等電子郵件進行gmail@gmail.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.