
メール regex Java バリデーター
メール regex Java バリデーターを使用して、Java で正規表現がメールアドレスを正しく検証するかどうかを即座に確認できます。ユーザーサインアップの検証、ログインフォームの構築、または入力のサニタイズに役立ちます。関連するユースケースにはJava Regex Tester、Java UUID バリデーター、またはJava パスワード regex バリデーターもお試しください。
メール regex Java バリデーター - ドキュメント
Java のメール regex とは何ですか?
Java では、メール regex パターンはユーザー入力が有効なメールフォーマットに従っているかを検証するために使用されます。ローカル部、@ 記号、有効な TLD を持つドメインの存在を確認します。
典型的なメール検証の確認項目:
英数字
ユーザー名内のドット、ダッシュ、アンダースコア
少なくとも 1 つの
.と 2 文字以上の拡張子を持つ有効なドメイン
有効なメールアドレスと無効なメールアドレスの例
有効:
username@domain.comuser.name@domain.comuser-name@domain.comusername@domain.co.inuser+tag@gmail.com
無効:
username.@domain.com(末尾のドット).user.name@domain.com(先頭のドット)user..name@domain.com(連続するドット)username@.com(ドメイン名なし)
メール regex パターン比較表
用途に合ったパターンを選択してください:
パターン名 | Regex | メリット | デメリット | 使用場面 |
|---|---|---|---|---|
シンプル |
| 高速、有効なメールをほとんど拒否しない | 多くの無効なフォーマットを受け入れる | 簡易チェック、重要でないフォーム |
標準 |
| 良いバランス、ほとんどの問題を検出 | 一部のエッジケースを見逃す | ほとんどのウェブアプリケーション |
厳格 |
| 長さ制限、連続するドットなし | 保守が複雑 | ユーザー登録、エンタープライズアプリ |
RFC 5322 |
| メール標準に最も近い | 複雑で稀なフォーマットを許可 | メールプロバイダー、メーリングリスト |
OWASP |
| セキュリティ重視、十分に検証済み | 一部の有効な文字を除外 | セキュリティ重視のアプリケーション |
本番対応 Java コード例
例 1: 標準的なメール検証
import java.util.regex.*;public class EmailValidator { private static final Pattern EMAIL_PATTERN = Pattern.compile( "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" );
public static boolean isValid(String email) { return EMAIL_PATTERN.matcher(email).matches(); } public static void main(String[] args) { System.out.println(isValid("user@example.com")); // true System.out.println(isValid("user@.com")); // false System.out.println(isValid("john.doe@company.co.in")); // true }
}
例 2: 厳格な検証(連続するドットなし、長さ制限あり)
import java.util.regex.*;public class StrictEmailValidator { private static final Pattern STRICT_PATTERN = Pattern.compile( "^(?=.{1,64}@)[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)" + "@[^-][A-Za-z0-9-]+(\.[A-Za-z0-9-]+)(\.[A-Za-z]{2,})$" );
public static void main(String[] args) { String[] emails = { "user.name@domain.com", // true "user..name@domain.com", // false(連続するドット) ".user@domain.com", // false(先頭のドット) "username.@domain.com" // false(末尾のドット) }; for (String email : emails) { System.out.println(email + ": " + STRICT_PATTERN.matcher(email).matches()); } }
}
例 3: 大文字小文字を区別しないマッチング
import java.util.regex.*;
public class CaseInsensitiveEmail { public static void main(String[] args) { Pattern pattern = Pattern.compile( "^[A-Z0-9.%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$", Pattern.CASE_INSENSITIVE ); Matcher matcher = pattern.matcher("John.Doe@Example.COM"); System.out.println("Email Valid: " + matcher.matches()); // true } }
使い方
regex パターンとテスト用メールをバリデーターに貼り付けます。
内部で Java の
Pattern.compile()とMatcher.matches()を使用します。regex が指定されたメールアドレスに正しくマッチするかを即座に確認できます。
メールアドレスの構造
すべてのメールアドレスには 3 つの部分があります:
ローカル部:
@の前のユーザー名(例:emma)@ 記号: 区切り文字
ドメイン部:
@の後のプロバイダー(例:qodex.ai)
考慮すべき検証ルール:
許可される文字: ローカル部では文字、数字、
.-+%ドットの制限: どちらの部分でも先頭、末尾、連続するドットは不可
長さ制限: ローカル部最大 64 文字、ドメイン最大 255 文字
TLD フォーマット: 2〜6 文字のアルファベット(例:
.com、.museum)
Apache Commons Validator の使用をお勧めする理由
本番 Java アプリケーションでは、カスタム regex の代替として Apache Commons Validator の使用を検討してください:
標準準拠: RFC 822 ルールに従い、エッジケースを自動的に処理
Unicode サポート: 国際的なメールアドレスをそのまま処理
メンテナンスされている: オープンソースコミュニティが積極的に更新
シンプルなコード: 複雑な regex パターンの代わりに 1 回のメソッド呼び出し
// 依存関係を追加: commons-validator import org.apache.commons.validator.routines.EmailValidator;
EmailValidator validator = EmailValidator.getInstance(); boolean isValid = validator.isValid("user@example.com"); // true
プロのヒント
Java では適切にエスケープする: regex 文字列ではダブルバックスラッシュを使用:
\.ではなく.大文字小文字を区別しない設定:
Pattern.compile(regex, Pattern.CASE_INSENSITIVE)を使用プラスアドレッシングを許可: ローカル部の文字クラスに
+を含める:[a-zA-Z0-9._%+-]regex を超えた検証: regex はフォーマットのみをチェックします。必ず実際のメール確認やドメイン DNS チェックと組み合わせてください。
一度コンパイルして再利用: 毎回の呼び出しで再コンパイルを避けるため、
Pattern.compile()をスタティックフィールドとして使用。
主なユースケース
ログイン・サインアップフォーム - フロントエンドとバックエンドでメール入力を検証
データクレンジング - データセットから無効なメールレコードをフィルタリング
API 検証 - POST リクエスト処理前にメールフォーマットを確認
CRM システム - 連絡先レコードで適切なメールフォーマットを強制
組み合わせをお勧めするツール
Java Regex Tester: Java のカスタム regex パターンを即座にテスト・デバッグ
Java パスワード regex バリデーター: Java で強力なパスワードポリシーを検証
Java UUID regex バリデーター: Java アプリケーションで UUID フォーマット準拠を確認
Java 電話番号バリデーター: Java で国際電話番号を検証
Java URL バリデーター: Java ベースアプリで URL が期待されるフォーマットに一致するか確認
Frequently Asked Questions
このバリデーターはすべての無効なメールを検出できますか?
このツールは他の言語でのメール検証とどう違いますか?
john.doe@company.co.in のような企業メールを検証できますか?
Unicode や日本語などの特殊文字をサポートしていますか?
Java でのメール検証に最適な regex は何ですか?
国際的なメールアドレスを検証するにはどうすれば良いですか?
Related Articles






