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