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中文網其他相關文章!