簡體   English   中英

顯示電子郵件地址作為提示

[英]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

RegEx演示

碼:

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函數實現。

(?<!^).(?=.*?.@)

使用上面的正則表達式並將匹配的字符替換為*

DEMO

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

我建議使用indexOfsubstring 使用替換,您可以使用gmail@gmail.com等電子郵件進行gmail@gmail.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM