A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© adamjy 中级黑马   /  2014-4-7 20:47  /  763 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

求教,用以下正则表达式为什么正确的email地址匹配的结果是false?

  1. public class EmailMatch {
  2.         public static void main(String[] args) {
  3.                 System.out.println("result = " + emailValidator("adam6790@163.com"));
  4.         }
  5.         public static boolean emailValidator(String email)
  6.         {
  7.             Pattern pattern;
  8.             Matcher matcher;
  9.             final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
  10.             pattern = Pattern.compile(EMAIL_PATTERN);
  11.             matcher = pattern.matcher(email);
  12.             return matcher.matches();
  13.         }
  14. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

2 个回复

正序浏览
额。。。楼主的正则表达式真心好复杂的样子~~估计应该是表达式的错误的,给你一个正确的匹配Email的正则表达式  "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"不谢;P
回复 使用道具 举报
  1. public class EmailMatch {
  2.         public static void main(String[] args) {
  3.                 System.out.println("result = " + emailValidator("adam6790163.cn"));
  4.         }
  5.         public static boolean emailValidator(String email)
  6.         {
  7.             Pattern pattern;
  8.             Matcher matcher;
  9.             final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+@[A-Za-z0-9]+(\\.[A-Za-z]{2,})$";
  10.             pattern = Pattern.compile(EMAIL_PATTERN);
  11.             matcher = pattern.matcher(email);
  12.             return matcher.matches();
  13.         }
  14. }
复制代码

楼主  你复杂化 了   用这个正则表达式就OK了    ^[_A-Za-z0-9-]+@[A-Za-z0-9]+([url=file://\\.[A-Za-z]{2,})$]\\.[A-Za-z]{2,})$[/url]



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马