此电子邮件验证表达式如何在Java中运行?

时间:2013-07-19 06:29:36

标签: java validation email

我正在使用此方法来验证Java中的电子邮件。我想了解它。有人可以解释这个表达式排除和包含的内容

String expression = [A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4};

以下是完整的方法:

public static boolean isValid(String email)
{
   //String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
   String expression = "[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}";
   //String expression = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
   CharSequence inputStr = email;
   Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
   Matcher matcher = pattern.matcher(inputStr);
   if (matcher.matches()) 
   {
      return true;
   }
   else{
   return false;
   }
}

2 个答案:

答案 0 :(得分:3)

Simranjeet 主要是正确。正则表达式[A-Z] +映射到一个或多个大写字母。您给出的正则表达式适用于所有字母(甚至小写)的原因是Pattern.CASE_INSENSITIVE确保大小写兼容性,

答案 1 :(得分:1)

  • [A-Z0-9 ._%+ - ] +邮件地址的第一部分可能包含所有字符,数字,点数,下划线,百分比,加号和减号。

  • @ @字符是强制性的

  • [A-Z0-9 .-] +邮件地址的第二部分可能包含所有字符,数字,点,下划线。
  • \。这一点是强制性的
  • [A-Z] {2,4}域名可以包含所有字符。字符数限制在2到4之间。

请参阅此链接“http://www.sw-engineering-candies.com/blog-1/howtofindvalidemailaddresswitharegularexpressionregexinjava