正規表現チェッカー

フラグ

パターンとテスト文字列を入力すると、マッチ結果がここに表示されます。

このツールでできること

正規表現チェッカーは、正規表現パターンをリアルタイムでテストし、マッチ箇所のハイライト表示やキャプチャグループの抽出ができる無料オンラインツールです。パターンを入力するだけで即座に結果が反映されるため、試行錯誤しながら正規表現を組み立てるのに最適です。処理はすべてブラウザ内で完結し、入力データがサーバーに送信されることはありません。

特徴

  • リアルタイムマッチング -- パターンやテスト文字列を入力するたびに即座に結果が更新されます。ボタンを押す手間がありません。
  • ハイライト表示 -- テスト文字列内のマッチ箇所が色付きでハイライトされ、どこがマッチしているか一目で分かります。
  • キャプチャグループの抽出 -- 各マッチのグループ(括弧で囲んだ部分)を表形式で確認でき、グループ番号・値・位置が分かります。
  • フラグ切替 -- g(グローバル)、i(大文字小文字無視)、m(複数行)、s(dotAll)のフラグをチェックボックスで簡単に切り替えられます。
  • ブラウザ完結・サーバー送信なし -- 入力データは一切外部に送信されません。社内データやAPIキーを含む文字列も安心してテストできます。

使い方

  1. 上部の正規表現パターン欄に、テストしたい正規表現を入力します(例: [0-9]{3}-[0-9]{4})。
  2. 必要に応じてフラグ(g, i, m, s)を切り替えます。デフォルトではグローバル(g)が有効です。
  3. テスト文字列欄に、マッチさせたい対象の文字列を入力します。
  4. マッチ結果がリアルタイムで表示されます。ハイライト表示でマッチ箇所を確認し、詳細テーブルでグループや位置を確認できます。

正規表現とは?

正規表現(Regular Expression、略称: regex)は、文字列のパターンを記述するための特殊な構文です。テキストの検索・置換・バリデーション(入力チェック)に広く使われており、ほぼすべてのプログラミング言語・テキストエディタ・コマンドラインツールでサポートされています。

たとえば \d{3}-\d{4} は「数字3桁、ハイフン、数字4桁」というパターンを表し、郵便番号のような文字列にマッチします。正規表現を使いこなすことで、大量のテキストから必要な情報を効率的に抽出したり、入力フォームのバリデーションを正確に行ったりできます。

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

用途パターン説明
メールアドレス[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}一般的なメールアドレスの形式にマッチ
URLhttps?://[\w\-.]+(:\d+)?(/[\w\-./?%&=]*)?http/httpsで始まるURLにマッチ
電話番号0\d{1,4}-\d{1,4}-\d{4}日本の固定電話・携帯電話の番号にマッチ
郵便番号\d{3}-?\d{4}日本の郵便番号(ハイフンあり・なし両対応)
日付(YYYY-MM-DD)\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])ISO 8601形式の日付にマッチ
IPアドレス(IPv4)\b(?:\d{1,3}\.){3}\d{1,3}\bIPv4アドレスの形式にマッチ
全角カタカナ[\u30A0-\u30FF]+全角カタカナの連続にマッチ
HTMLタグ<[^>]+>HTMLタグにマッチ(簡易版)

こんなときに使えます

  • 入力バリデーションの確認 -- フォームの入力チェック用に書いた正規表現が正しくマッチするか、さまざまなパターンでテストできます。
  • ログ解析パターンの作成 -- アクセスログやエラーログから特定のパターンを抽出するための正規表現を、実際のログデータで試しながら調整できます。
  • テキストエディタの検索・置換 -- VS CodeやSublime Textで使う正規表現を事前にテストし、意図通りにマッチするか確認できます。
  • データクレンジング -- CSVやテキストデータから不要な文字を除去したり、特定のフォーマットを抽出したりするパターンを検証できます。
  • プログラミング学習 -- 正規表現の動作を視覚的に確認しながら学習でき、各メタ文字や量指定子の挙動を理解するのに役立ちます。
  • コードレビューの補助 -- チームメンバーが書いた正規表現が期待通りに動作するか、エッジケースを含めてテストできます。

よくある正規表現の間違い

  • メタ文字のエスケープ忘れ -- . * + ? ( ) [ ] { } \ ^ $ | は特殊な意味を持つため、リテラルとして使う場合は \. のようにバックスラッシュでエスケープが必要です。
  • 貪欲マッチと最短マッチの混同 -- .* は貪欲(greedy)で可能な限り長くマッチします。最短でマッチさせたい場合は .*?(lazy)を使います。HTMLタグの抽出などで頻繁に問題になります。
  • アンカーの付け忘れ -- 文字列全体のバリデーションでは ^(先頭)と $(末尾)を付けないと、部分一致でマッチしてしまいます。例: \d+ は「abc123def」にもマッチします。
  • 文字クラス内のハイフン位置 -- [a-z]- は範囲を表しますが、リテラルのハイフンにしたい場合は先頭か末尾に置く([-az][az-])必要があります。
  • 改行を含む文字列への対応漏れ -- デフォルトでは . は改行にマッチしません。改行を含むテキストを対象にする場合は s フラグ(dotAll)を有効にするか、[\s\S] を使います。
  • キャプチャグループと非キャプチャグループの区別 -- (abc) はキャプチャグループですが、グループ化だけが目的なら (?:abc)(非キャプチャグループ)を使うとパフォーマンスが向上し、後方参照の番号もずれません。

よくある質問

無料で使えますか?
はい、完全無料です。回数制限・登録・ログインも一切ありません。
入力したデータはサーバーに送信されますか?
いいえ。正規表現のテストはすべてお使いのブラウザ内(JavaScript)で処理されます。当サイトのサーバーにデータが送信されることはありません。
どの正規表現エンジンが使われていますか?
JavaScriptの組み込み正規表現エンジン(ECMAScript仕様)が使われています。PCRE(PHP)やPOSIXとは一部構文が異なりますのでご注意ください。たとえば、後読み(lookbehind)は最新ブラウザでは対応していますが、古いブラウザではサポートされていない場合があります。
対応しているフラグは何ですか?
g(グローバル)、i(大文字小文字無視)、m(複数行モード)、s(dotAll: ドットが改行にもマッチ)の4種類に対応しています。
キャプチャグループの結果はどこで確認できますか?
マッチ詳細テーブルに、各マッチのグループ番号・マッチした値・位置(開始-終了)が表示されます。名前付きキャプチャグループ((?<name>...))にも対応しています。
スマートフォンでも使えますか?
はい。レスポンシブ対応なので、iPhone・Android のブラウザからも利用できます。