2013-03-25 49 views
2

我該如何替換段落中的電子郵件地址,假設它是一個字符串,並帶有名稱? 像[email protected] = XX,.COM,.AE如何使用C#中的正則表達式在文本中用名稱替換電子郵件地址?

輸入= 「接觸[email protected][email protected]更多細節」

輸出=「聯繫美國廣播公司或Defg更多細節「

+3

你的問題不清楚! – 2013-03-25 09:51:33

+1

您可以在標題中顯示電子郵件,也可以使用jQuery或JavaScript替換懸停事件中的字符串。 – 2013-03-25 09:54:27

+1

你需要正則表達式嗎? – 2013-03-25 09:56:00

回答

1

既然你問了一個正則表達式,我要給你一個。

Regex regex = new Regex(@"(\.|[a-z]|[A-Z]|[0-9])*@(\.|[a-z]|[A-Z]|[0-9])*"); 
foreach (Match match in regex.Matches(inputString)) 
{ 
    // match.Value == "[email protected]" 
    string name = match.Groups[1]; // "xx" 
    string domain = match.Groups[2]; // "yahoo.com.my" 
} 
+1

@DmitryDovgopoly我提供了一個'Regex'。你可以自己替換。不要懶惰。 – Nolonar 2013-03-25 10:07:59

+0

謝謝,這就是我一直在尋找,像往常一樣,在看到解決方案後感到很蠢:P – TrackmeifYouCan 2013-03-25 10:50:17

+0

@TrackmeifYouCan在這種情況下,你應該考慮接受答案;) – Nolonar 2013-03-25 10:55:21

1
int end = myString.IndexOf('@'); 

string name=myString.Substring(0, end); 

試試這個。

您可以參考這裏的子功能>>

http://www.dotnetperls.com/substring

+0

爲什麼你把「結束」參數命名爲「開始」?奇怪的命名約定;) – Nolonar 2013-03-25 09:57:29

+0

點注意。並回答編輯!感謝名單。 – Freelancer 2013-03-25 09:58:34

0
public static string ReplaceEmail(string emailBody) { 
     string scrubbedemailBody = emailBody; 
     Regex regex = new Regex(@"(\.|[a-z]|[A-Z]|[0-9])*@(\.|[a-z]|[A-Z]|[0-9])*"); 
     scrubbedemailBody = regex.Replace(scrubbedemailBody, match => { 
      return new string(' ', match.Length); 
     }); 
     return scrubbedemailBody; 
    } 
+0

考慮提供一些解釋以及您提供的代碼。 – 2017-04-27 21:20:11

相關問題