使用正则表达式:验证电子邮件地址

时间:2012-01-04 10:41:08

标签: java regex

  

可能重复:
  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}");

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教程。