首頁 >Java >java教程 >為什麼我的 Java Regex 電子郵件驗證失敗,儘管它在 Eclipse 中有效?

為什麼我的 Java Regex 電子郵件驗證失敗,儘管它在 Eclipse 中有效?

DDD
DDD原創
2024-12-03 04:55:13161瀏覽

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