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(); }
據報告此代碼可以可靠地驗證電子郵件地址。
以上是儘管在 Eclipse 的查找和替換中工作,為什麼我的 Java Regex 電子郵件驗證失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!