正規表現チェッカー
マッチ結果(ハイライト)
マッチ詳細
パターンとテスト文字列を入力すると、マッチ結果がここに表示されます。
このツールでできること
正規表現チェッカーは、正規表現パターンをリアルタイムでテストし、マッチ箇所のハイライト表示やキャプチャグループの抽出ができる無料オンラインツールです。パターンを入力するだけで即座に結果が反映されるため、試行錯誤しながら正規表現を組み立てるのに最適です。処理はすべてブラウザ内で完結し、入力データがサーバーに送信されることはありません。
特徴
- リアルタイムマッチング -- パターンやテスト文字列を入力するたびに即座に結果が更新されます。ボタンを押す手間がありません。
- ハイライト表示 -- テスト文字列内のマッチ箇所が色付きでハイライトされ、どこがマッチしているか一目で分かります。
- キャプチャグループの抽出 -- 各マッチのグループ(括弧で囲んだ部分)を表形式で確認でき、グループ番号・値・位置が分かります。
- フラグ切替 -- g(グローバル)、i(大文字小文字無視)、m(複数行)、s(dotAll)のフラグをチェックボックスで簡単に切り替えられます。
- ブラウザ完結・サーバー送信なし -- 入力データは一切外部に送信されません。社内データやAPIキーを含む文字列も安心してテストできます。
使い方
- 上部の正規表現パターン欄に、テストしたい正規表現を入力します(例:
[0-9]{3}-[0-9]{4})。 - 必要に応じてフラグ(g, i, m, s)を切り替えます。デフォルトではグローバル(g)が有効です。
- テスト文字列欄に、マッチさせたい対象の文字列を入力します。
- マッチ結果がリアルタイムで表示されます。ハイライト表示でマッチ箇所を確認し、詳細テーブルでグループや位置を確認できます。
正規表現とは?
正規表現(Regular Expression、略称: regex)は、文字列のパターンを記述するための特殊な構文です。テキストの検索・置換・バリデーション(入力チェック)に広く使われており、ほぼすべてのプログラミング言語・テキストエディタ・コマンドラインツールでサポートされています。
たとえば \d{3}-\d{4} は「数字3桁、ハイフン、数字4桁」というパターンを表し、郵便番号のような文字列にマッチします。正規表現を使いこなすことで、大量のテキストから必要な情報を効率的に抽出したり、入力フォームのバリデーションを正確に行ったりできます。
よく使う正規表現パターン
| 用途 | パターン | 説明 |
|---|---|---|
| メールアドレス | [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} | 一般的なメールアドレスの形式にマッチ |
| URL | https?://[\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}\b | IPv4アドレスの形式にマッチ |
| 全角カタカナ | [\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 のブラウザからも利用できます。