ホームページ >Java >&#&チュートリアル >Eclipse では動作するにもかかわらず、Java Regex 電子メール検証が失敗するのはなぜですか?

Eclipse では動作するにもかかわらず、Java Regex 電子メール検証が失敗するのはなぜですか?

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

ただし、電子メール文字列内の特殊文字が偽装またはエスケープされている可能性があり、この正規表現は失敗しているようです。

より包括的な正規表現を使用した解決策

これに対処するには、電子メールに対してより堅牢な正規表現を利用できます。 validation:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。