从电子邮件地址获取域名

59

我有一个电子邮件地址

xyz@yahoo.com

我想从电子邮件地址中获取域名。我能用正则表达式实现吗?


2
如果你不确定(或者你还没有尝试过任何东西),那就使用正则表达式!现在你有两个问题。 - Mitch Wheat
4个回答

138

通过使用MailAddress,您可以从一个属性中获取Host

MailAddress address = new MailAddress("xyz@yahoo.com");
string host = address.Host; // host contains yahoo.com

29
如果您不想采用Default的答案,您可以在'@'之后使用Split函数拆分电子邮件字符串。
string s = "xyz@yahoo.com";
string[] words = s.Split('@');

words[0]如果你将来需要它的话,它将是xyz

words[1]将是yahoo.com

但Default的答案肯定是一种更容易的方法。


4
提醒一下,电子邮件地址中可以包含多个“@”符号。但我很确定最后一个总是将“用户”和“域名”分开的。 - Chris Owens

10
或者采用基于字符串的解决方案:
string address = "xyz@yahoo.com";
string host;

// using Split
host = address.Split('@')[1];

// using Split with maximum number of substrings (more explicit)
host = address.Split(new char[] { '@' }, 2)[1];

// using Substring/IndexOf
host = address.Substring(address.IndexOf('@') + 1);

0

1
我想补充一点,虽然MailBee.NET Objects确实是商业产品,但某些命名空间(如MIME或HTML)可以免费使用。 - Igor - AfterLogic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接