Java 正则表达式电子邮件验证出现问题
在尝试使用正则表达式验证电子邮件地址时,Java 用户遇到了以下问题:即使对于格式正确的电子邮件地址,验证也会失败。尽管事实上,当在 Eclipse 中的“查找和替换”功能中使用正则表达式时,该正则表达式会匹配电子邮件地址,但在与 Java 的 Pattern 和 Matcher 类一起使用时,它会失败。
有问题的正则表达式是:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
用户已在 Java 中使用此代码:
Pattern p = Pattern.compile("\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"); Matcher m = p.matcher("[email protected]"); if (m.find()) System.out.println("Correct!");
但是,无论电子邮件地址是否有效或无效,正则表达式验证失败。
潜在的解决方案
建议的解决方案是利用以下 Java 代码,该代码采用类似的正则表达式:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
据报告此代码可以可靠地验证电子邮件地址。
以上是尽管在 Eclipse 的查找和替换中工作,为什么我的 Java Regex 电子邮件验证失败?的详细内容。更多信息请关注PHP中文网其他相关文章!