2014-11-06 56 views
0

我在正則表達式中真的很糟糕,並且會使用c#解析電子郵件地址。正則表達式來查找包含在兩個字符之間的字符串

如果我的輸入是[email protected],我會用什麼正則表達式來提取「域」部分?可以有多個不同長度的域。

+0

所以,你需要'@'和後面的'.'之間的文本嗎? – Jonesopolis 2014-11-06 00:14:40

+1

你可以通過幾種不需要'RegEx'的方法來熟悉'IndexOf()'方法或'Split()'方法。 – MethodMan 2014-11-06 00:15:04

+0

是的,@和下面的文字。 – Raj 2014-11-06 00:15:49

回答

4

用正則表達式分析電子郵件並不是微不足道的,因爲有效的電子郵件的規則很複雜;幸運的是,您不需要:您可以使用MailAddress類。

var address = new MailAddress("[email protected]"); 
string domain = address.Host.Split('.')[0]; 
+0

完美。謝謝。 – Raj 2014-11-06 00:20:00

+0

嘿非常酷的主意 – Jonesopolis 2014-11-06 00:20:41

1

使用正向後看找到@,然後抓住文本直到一個.

(?<[email protected])[^\.]+

在代碼中,你可以使用:

var str = "[email protected]"; 
var domain = Regex.Match(str, @"(?<[email protected])[^\.]+").Groups[0].ToString(); 

你會我想要檢查你的比賽以確保找到一場比賽。

+0

謝謝。這工作。 – Raj 2014-11-06 00:22:19

相關問題