我有一个电子邮件地址
xyz@yahoo.com
我想从电子邮件地址中获取域名。我能用正则表达式实现吗?
我有一个电子邮件地址
xyz@yahoo.com
我想从电子邮件地址中获取域名。我能用正则表达式实现吗?
通过使用MailAddress,您可以从一个属性中获取Host
。
MailAddress address = new MailAddress("xyz@yahoo.com");
string host = address.Host; // host contains yahoo.com
'@'
之后使用Split
函数拆分电子邮件字符串。string s = "xyz@yahoo.com";
string[] words = s.Split('@');
words[0]
如果你将来需要它的话,它将是xyz
words[1]
将是yahoo.com
但Default的答案肯定是一种更容易的方法。
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);
这里可以使用简单的子字符串方法
string emailAddress = @"myemail@gmail.com"; string domainName = emailAddress.Substring(emailAddress.IndexOf('.',emailAddress.LastIndexOf('@')));
Console.WriteLine (domainName);
或者,如果你有一点钱,你可以获取这个库,它会为你完成工作
https://afterlogic.com/mailbee-net/docs/MailBee.Mime.EmailAddress.GetDomain.html