Logo Wand.Tools

正規表現ジェネレーター

正規表現を智能生成・解説し、様々な一般的なパターンマッチングをサポート

Java 正規表現 (Regex) チュートリアル

Java 正規表現完全チュートリアル(例付き)| Java Regex チュートリアル詳細解説

Java 正規表現(Regex)は、テキスト処理のための強力なツールであり、文字列のマッチング、検証、置換などに広く使用されています。この記事では、最も実用的なJava正規表現チュートリアルを、詳細なコード例と共に提供し、Java Regexスキルを習得し、様々な開発シナリオに簡単に対処できるよう支援します。


✅ 正規表現の基本構文

表現 説明
. 改行文字以外の任意の文字にマッチ
^ 入力文字列の開始位置にマッチ
$ 入力文字列の終了位置にマッチ
* 直前の要素に 0 回以上マッチ
+ 直前の要素に 1 回以上マッチ
? 直前の要素に 0 回または 1 回マッチ
[] 括弧内の任意の文字にマッチ
[^^] 括弧内にない任意の文字にマッチ
{n} ちょうど n 回マッチ
{n,} 少なくとも n 回マッチ
{n,m} n 回から m 回の間でマッチ(含む)
\d 数字文字にマッチ、[0-9] と等価
\w 単語文字(文字、数字、アンダースコア)にマッチ、[a-zA-Z_0-9] と等価
\s 任意の空白文字にマッチ
` `

🚀 Javaで正規表現を使用するための主要なクラス

  • java.util.regex.Pattern
  • java.util.regex.Matcher

📌 基本例:文字列が正規表現にマッチするかどうかをチェック

import java.util.regex.*;

public class RegexExample1 {
    public static void main(String[] args) {
        String pattern = "^[a-zA-Z0-9]{6,12}$";
        String input = "abc12345";

        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(input);

        if (m.matches()) {
            System.out.println("マッチ成功");
        } else {
            System.out.println("マッチ失敗");
        }
    }
}

🧩 例:すべてのメールアドレスを抽出

import java.util.regex.*;

public class RegexExample2 {
    public static void main(String[] args) {
        String text = "連絡先メールアドレス:[email protected], [email protected]";
        String regex = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(text);

        while (m.find()) {
            System.out.println("メールアドレスが見つかりました: " + m.group());
        }
    }
}

🔁 例:すべての電話番号形式を置換

import java.util.regex.*;

public class RegexExample3 {
    public static void main(String[] args) {
        String input = "顧客電話番号:13812345678、予備番号:13987654321";
        String regex = "1[3-9]\\d{9}";

        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);

        String result = m.replaceAll("***機密保持***");
        System.out.println(result);
    }
}

🔍 例:よく使う形式(電話番号、メール、IDカード)を検証

public class RegexValidation {
    public static void main(String[] args) {
        String phone = "13812345678";
        String email = "[email protected]";
        String idCard = "110101199003077777";

        System.out.println(phone.matches("^1[3-9]\\d{9}$"));          // true
        System.out.println(email.matches("^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$")); // true
        System.out.println(idCard.matches("^\\d{17}[\\dXx]$"));       // true
    }
}

🔐 よく使う正規表現テンプレート(保存推奨)

  • 電話番号検証: ^1[3-9]\\d{9}$
  • メールアドレス検証: ^[\\w.-]+@[\\w.-]+\\.[a-zA-Z]{2,}$
  • IDカード番号検証: ^\\d{17}[\\dXx]$
  • パスワード強度チェック: ^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$
  • IPアドレス検証: ^(\\d{1,3}\\.){3}\\d{1,3}$
  • URLアドレス検証: ^https?://[\\w.-]+(?:\\.[\\w\\.-]+)+[/#?]?.*$

📈 Java正規表現の一般的な応用シナリオ

  • フォーム検証(電話番号、メールアドレス、パスワード)
  • テキストコンテンツ抽出(ログ解析、メールアドレス抽出)
  • 機密情報処理(例:IDカード、電話番号の置換)
  • バッチ文字列置換とクリーニング
  • データ形式の標準化