从电子邮件列表中获取域名

时间:2017-02-01 08:50:40

标签: java

从电子邮件列表中获取域名
嗨,我有一个电子邮件ID列表,我必须从中获取域名。

对于像sample@example.com这样的简单电子邮件,我已经完成了从中获取域名的代码部分 但对于hello@in.ibm.com(实际域名为ibm.com)等电子邮件,我无法获取该域名。

String domainName = "";
String[] parts = email.split("@");
if(parts.length == 2) 
    domainName = parts[1];

如何拆分或使用正则表达式来获取域名?

3 个答案:

答案 0 :(得分:5)

String #substring()非常好,分裂正在生成一个数组......(浪费资源......)

定义一个方法(就这样清洁......)

public String getEmailDomain(String someEmail)
{
    return  someEmail.substring(someEmail.indexOf("@") + 1);
}

答案 1 :(得分:1)

您可以尝试以下

(?<=@)[^.]+(?=\.)

这将仅返回域名而不包含尾随的suffex,例如me@domain.com将返回域名

(?<=@)[a-zA-Z0-9\.]+(?<=)

这将返回域名并且后缀为e.e me@domain.com将返回domain.com或me@192.168.0.1将返回192.168.0.1

解释它是如何运作的

  

&LT; =

背后的正面看法

  

@

匹配字符@字面(区分大小写)

匹配单个字符[a-zA-Z0-9。]

  

+

量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)

  

匹配角色。从字面上看(区分大小写)

  

&LT; =

背后的正面看法

并且假设没有给出值后面的null,则假设匹配任何位置

有关Java Regex的更多信息,请参阅 Tutorials Point

答案 2 :(得分:0)

以防万一仍然有人想知道如何做,这是另一种方式,它支持不带'@'字符的输入字符串:

2*boo(n/2)