可能重复:
What is the best regular expression for validating email addresses?
嗨,我是关于使用正则表达式的新手 我有这个正则表达式来验证邮件,但我不明白其中的含义。有人能解释我吗?
mailPattern = Pattern.compile("[a-zA-Z_0-9]*[.[a-zA-Z_0-9]*]*@[a-zA-Z_0-9]*[.[a-zA-Z_0-9]*]*.[a-zA-Z]{2,3}");
答案 0 :(得分:4)
如果您正在使用Java,更简单的选择是使用JavaMail的InternetAddress
类来为您验证地址:
public boolean isEmailValid(String email) {
try {
new InternetAddress(email);
return true;
}
catch (Exception e) {
return false;
}
}
这将根据RFC822执行验证。没有必要尝试提出你自己的正则表达式,真的,或复制其他人提出的正则表达式。只需使用JavaMail的内置实用程序,然后继续进行更有意义的事情。
答案 1 :(得分:2)
我建议您使用优质网站http://www.regular-expressions.info/开始学习正则表达式
但你的正则表达似乎并不好。没有必要在集合中使用星号。
这是错误的代码:[。[a-zA-Z_0-9] *]
你需要在你的正则表达式的某些部分使用+代替*。
在此解释使用正则表达式验证电子邮件(我建议您阅读它并使用其中一个正则表达式而不是您的正则表达式): http://www.regular-expressions.info/email.html
答案 2 :(得分:-1)
您可以查看正则表达式here上的Java SE教程。