首页 >Java >java教程 >为什么我的 Java Regex 电子邮件验证失败,尽管它在 Eclipse 中有效?

为什么我的 Java Regex 电子邮件验证失败,尽管它在 Eclipse 中有效?

DDD
DDD原创
2024-12-03 04:55:13165浏览

Why Is My Java Regex Email Validation Failing, Even Though It Works in Eclipse?

Java 正则表达式电子邮件验证:为什么我的正则表达式失败?

您遇到了一个特殊问题,即用于电子邮件验证的 Java 正则表达式始终失败,尽管在 Eclipse 中工作正常。这种行为可能令人费解,我们将深入研究解决方案。

提供的正则表达式类似于常用的电子邮件验证模式,其中您的目标是匹配以下结构:大写字母数字字符、下划线、句点或连字符后跟“@”符号,后跟更多字母数字字符、句点或连字符,并以由 2 到 4 个大写字母组成的域组件结尾

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!");

但是,此正则表达式似乎失败,可能是由于电子邮件字符串中的特殊字符被伪装或转义。

使用更全面的正则表达式的解决方案

为了解决这个问题,我们可以使用更强大的电子邮件正则表达式验证:

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();
}

此更新的正则表达式遵循指定的电子邮件结构,但还可以更有效地处理特殊字符。

以上是为什么我的 Java Regex 电子邮件验证失败,尽管它在 Eclipse 中有效?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn