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(); }
据报告,此代码可以可靠地验证电子邮件地址。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3