正規表現テスター
サンプルテキストで正規表現をテストし、一致箇所をリアルタイムでハイライト表示します。パターンの分かりやすい解説と、一致・置換モードも利用できます。
パターンの解説
マッチ結果
| # | マッチ | 位置 | グループ |
|---|
置換結果
使い方
このツールはJavaScriptのRegExpエンジンを使い、サンプルテキストで正規表現をテストします。入力に合わせて一致箇所がハイライト表示され、パターンの意味を分かりやすく解説します。各一致の名前付き・番号付きキャプチャグループも確認できます。
- パターンとフラグを入力してください
またはクイックパターンから始めて調整してください。
- テスト文字列を貼り付けてください
マッチがリアルタイムでハイライト表示され、位置とキャプチャグループが一覧に表示されます。
- 必要に応じて置換モードに切り替えてください
コードで使用する前に、置換後のテキストを確認してください。
パターンの解説とマッチ一覧の読み方
パターンの解説は、正規表現を左から右へ読み進め、各トークン(文字クラス、アンカー、量指定子、グループなど)を平易な言葉で説明します。これはパターン理解のためのガイドであり、完全なパーサーではないため、特殊または不正な構文は汎用的に説明される場合があります。
- フラグ: gは最初の一致で止めずにすべての一致を探します。iは大文字と小文字を区別しません。mは^と$を各行の先頭・末尾にも一致させます。sはドットを改行にも一致させます。uはUnicodeモードを有効にします。yは最後のインデックス位置に一致を固定します。
- キャプチャグループ: 括弧はマッチの一部をキャプチャして再利用できるようにします。名前付きグループ(?<year>\d{4})は、マッチ一覧に番号だけでなく名前でも表示されます。
- 置換モード: $1や$2は番号付きグループを参照し、$<name>は名前付きグループを参照します。これはJavaScriptのString.replaceと同じ構文です。
PCREではなくJavaScriptの正規表現
このツールはJavaScriptのRegExpエンジンを使用しています。このエンジンはPHPやPythonのreモジュールなどで使われるPCREといくつかの点で異なります。後読みのサポートはエンジンバージョンによって異なり、名前付きグループは(?<name>...)構文を使用し、uフラグなしではUnicodeの処理が異なります。本番環境にパターンを適用する前に、必ず対象言語でテストしてください。すべての処理はブラウザ内で実行され、ログ行や個人データを含む可能性のあるテキストが外部に送信されることはありません。
よくある質問
オンラインでサンプルテキストに対して正規表現をテストするにはどうすればよいですか?
2つのスラッシュ区切り文字の間にパターンを入力し、フラグフィールドにg(グローバル)やi(大文字小文字無視)などのフラグを設定してから、テスト文字列を入力または貼り付けてください。入力中にリアルタイムで一致箇所がハイライト表示され、下部の一致リストには各一致内容、インデックス、文字位置が表示されます。
この正規表現テスターは機密データの処理に使っても安全ですか?
はい。正規表現テスターはJavaScriptのRegExpエンジンを使い、すべてブラウザ内で動作します。データはサーバーに送信されません。実際のログ、個人情報、社内データを使っても、端末の外に送信せずにパターンを安全にテストできます。
置換モードを使用して正規表現の置換をテストするにはどうすればよいですか?
モードを「マッチ」から「置換」に切り替えてください。置換文字列の入力欄が表示され、番号付きキャプチャグループには$1や$2、名前付きグループには$<name>を使えます。置換結果はリアルタイムで表示されます。コードやエディターで検索・置換を実行する前の確認に便利です。
クイックパターンプリセットとは何ですか?またいつ使用すべきですか?
プリセットボタン(メール、URL、IPアドレス、電話番号、16進数カラーコード、日付)をクリックすると、よく使われる正規表現のパターンと適切なフラグが読み込まれます。これを出発点に、必要な形式に合わせてパターンを調整してください。すべての例外的なケースに対応するわけではありません。たとえばメール用プリセットは一般的な近似パターンであり、RFC 5321の仕様を完全に網羅していません。
正規表現がJavaScriptでは動くのに、Pythonなどでは動かないのはなぜですか?
このツールはJavaScriptのRegExpエンジンを使用しています。このエンジンはPHPやPythonのreモジュールなどで使用されるPCREといくつかの点で異なります。後読みサポートはエンジンバージョンによって異なり、名前付きグループは一部の言語で異なる構文を使用し、Unicodeの処理も異なります。本番環境にパターンをデプロイする前に、必ず対象言語でテストしてください。