从电子邮件列表中获取域名
嗨,我有一个电子邮件ID列表,我必须从中获取域名。
对于像sample@example.com
这样的简单电子邮件,我已经完成了从中获取域名的代码部分
但对于hello@in.ibm.com
(实际域名为ibm.com
)等电子邮件,我无法获取该域名。
String domainName = "";
String[] parts = email.split("@");
if(parts.length == 2)
domainName = parts[1];
如何拆分或使用正则表达式来获取域名?
答案 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)