ホームページ > Java > &#&チュートリアル > Eclipse の検索と置換が機能しているにもかかわらず、Java Regex 電子メールの検証が失敗するのはなぜですか?

Eclipse の検索と置換が機能しているにもかかわらず、Java Regex 電子メールの検証が失敗するのはなぜですか?

Barbara Streisand
リリース: 2024-11-30 17:30:11
オリジナル
641 人が閲覧しました

Why Does My Java Regex Email Validation Fail Despite Working in Eclipse's Find and Replace?

Java Regex 電子メール検証に関するトラブル

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート