[解決済み] Java 正規表現メール
2022-04-28 17:58:52
質問内容
まず最初に、電子メールに正規表現を使用することが推奨されないことは知っていますが、これをテストする必要があります。
こんな正規表現があります。
\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!");
しかし、この正規表現はメールがウェルフォームであるかどうかに関係なく失敗します。Eclipseで検索と置換を行うと、同じ正規表現でうまく動作します。
何か思い当たることはありますか?
ありがとうございます。
解決方法は?
参考までに、私たちがメールアドレスの検証に使用しているJavaのコードを紹介します。Regexpの部分は非常によく似ています。
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.find();
}
かなり確実に動作する。
関連
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java の例外が発生しました java
-
jd-gui Java Exceptionが発生しました。
-
javaで非静的な解を静的な参照にすることができない
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
JQuery DataTable 详解
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
Javaエラーメッセージがenclosingクラスでない
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
java 例外。Javaツールの初期化
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)