CalquioCalquio

検索

計算ツールを検索

正規表現テスター

正規表現をリアルタイムでテスト・デバッグ。マッチ箇所を即座にハイライト表示し、詳細なマッチ情報を確認できます。

//gm
よく使うパターン:

関連ツール

正規表現とは?

正規表現(regex)は、テキスト内の文字の組み合わせにマッチするパターンです。超強力な「検索」機能と考えてください。

Ctrl+Fは正確なテキストを見つけますが、正規表現はパターンを見つけます:

  • ドキュメント内のすべてのメールアドレス
  • あらゆる形式の電話番号
  • 形式に関係なく日付
  • 「un-」で始まる単語

すべてのプログラマーは最終的に正規表現が必要になります。一生役立つスキルです。

基本構文

リテラル文字 ほとんどの文字はそのままマッチ:helloは「hello」にマッチ

特殊文字(メタ文字)

文字意味
.任意の1文字h.tは「hat」「hit」「hot」にマッチ
*直前の0回以上ab*cは「ac」「abc」「abbc」にマッチ
+直前の1回以上ab+cは「abc」「abbc」にマッチ(「ac」は不可)
?直前の0回か1回colou?rは「color」「colour」にマッチ
^文字列/行の先頭^Helloは「Hello world」にマッチ
$文字列/行の末尾world$は「Hello world」にマッチ

特殊文字をそのままマッチさせるには、バックスラッシュでエスケープ:\.は実際のピリオドにマッチ。

文字クラス

文字クラスは、セットから任意の1文字にマッチします:

パターンマッチ
[abc]a、b、またはc[cb]at → 「cat」「bat」
[a-z]小文字のアルファベット[a-z]+ → 「hello」
[A-Z]大文字のアルファベット[A-Z][a-z]+ → 「Hello」
[0-9]数字[0-9]{3} → 「123」
[^abc]a、b、c以外[^0-9]+ → 「hello」

ショートハンドクラス

省略形同等意味
\d[0-9]数字
\D[^0-9]数字以外
\w[a-zA-Z0-9_]単語文字
\s[ \t\n\r\f]空白

量指定子

量指定子はパターンの繰り返し回数を指定します:

量指定子意味
*0回以上a* → 「」「a」「aaa」
+1回以上a+ → 「a」「aaa」(「」は不可)
?0回か1回a? → 「」「a」
{3}ちょうど3回a{3} → 「aaa」
{2,4}2〜4回a{2,4} → 「aa」「aaa」「aaaa」

デフォルトでは、量指定子は貪欲です — できるだけ多くマッチします。?を追加すると非貪欲に:.*?は最小限にマッチ。

グループと選択

括弧でグループを作成:

(abc)+     # 「abc」「abcabc」などにマッチ
(Mr|Mrs|Ms) # 「Mr」「Mrs」「Ms」にマッチ

キャプチャグループはマッチした内容を記憶:

(\d{3})-(\d{4})

エリアコードと番号を別々にキャプチャ。

よく使う正規表現パターン

📧 メール(簡略版)

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

📱 日本の電話番号

0\d{1,4}-\d{1,4}-\d{4}

📅 日付(YYYY-MM-DD)

\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])

正規表現のヒント

1. シンプルに始める 正規表現を少しずつ構築。追加するたびにテスト。

2. 可能な限り具体的に \d{4}は長さが分かっている場合、\d+より良い。

3. アンカーを使用 ^$で部分マッチを防止。^\d{5}$は「12345」にマッチ、「123456」は不可。

4. エッジケースをテスト

  • 空文字列
  • 非常に長い入力
  • 特殊文字
  • Unicode文字

5. 正規表現を使わないべき時を知る

  • HTML/XMLのパース(パーサーを使用)
  • 複雑なネスト構造
  • 単純な文字列メソッドで十分な場合