使い方
- Pattern 欄に、前後のスラッシュを付けずに正規表現を入力します。
- 必要なフラグにチェックを入れます。g(global)を有効にすると、最初の一致だけでなくすべての一致を検索します。
- 検索するテキストを貼り付けます。一致箇所がハイライトされ、それぞれの位置とキャプチャグループが一覧表示されます。
- 必要に応じて $2-$1 などの置換文字列を入力すると、String.replace の結果をプレビューできます。
仕組み
このテスターはブラウザーに組み込まれた RegExp オブジェクトでパターンを実行するため、結果はそのブラウザーの JavaScript(ECMAScript)コードで実行した場合と同じです。他の言語では正規表現の仕様が異なります。PCRE(PHP)、Python の re モジュール、Java、.NET には、JavaScript にない機能(所有量指定子 (a++)、アトミックグループ ((?>…)、(?i) などのインライン修飾子、再帰など)があり、\A や \Z アンカーなどの細部にも違いがあります。その言語でパターンを使う前に、対象の言語でテストしてください。後読み ((?<=…))、名前付きグループ ((?<name>…))、Unicode プロパティエスケープ(u フラグを付けた \p{L})は、現在のすべてのブラウザーで使用できます。
g フラグまたは y フラグがない場合、RegExp.exec と同様に最初の一致だけが見つかります。^ や \b などに一致する長さゼロの結果も一覧に表示されますが、ハイライトされません。一致した後は、String.matchAll と同様に検索位置が1文字分(u フラグがある場合は1コードポイント分)進みます。キャプチャグループは番号で表示され、名前が定義されている場合は名前でも表示されます。一致に含まれなかったグループは値なしと表示され、空の一致とは区別されます。
長い行に一致しない場合の (a+)+$ のように、失敗するまでに指数関数的な時間がかかるパターン(カタストロフィック・バックトラッキング)があります。リスクを抑えるため、入力を止めてから少し待って照合を開始し、テキストの先頭100,000文字だけを検索して、一致結果は最大1,000件まで収集します。それでも、問題のあるパターンによってタブの応答がしばらくなくなることがあります。その場合は、パターンを簡潔にするかテキストを短くしてください。
使用例
日付を抽出する
g フラグを有効にしてパターン (\d{4})-(\d{2})-(\d{2}) を「Due 2026-03-15, paid 2026-04-02」に適用すると、2件一致します。グループ1は年です。置換文字列 $3.$2.$1 を使うと、「Due 15.03.2026, paid 02.04.2026」になります。
読みやすいコードに役立つ名前付きグループ
クエリ文字列 a=1&b=two に (?<key>\w+)=(?<value>[^&]*) を適用すると、各ペアの key と value が表示されます。これは JavaScript で match.groups.key と match.groups.value が返す値と同じです。
大文字と小文字を区別せず複数行を検索
フラグ g、i、m を付けた ^error:.* は、Error:、ERROR:、error: で始まるログの各行に一致します。m フラグを付けると、^ が各行の先頭に一致するためです。
よくある質問
Python、PHP、Javaでも同じように正規表現を使えますか?
必ずしも同じように動作するとは限りません。このツールは JavaScript のエンジンを使用します。基本的な構文は共通していますが、所有量指定子、アトミックグループ、(?i) などのインラインフラグ、一部のエスケープシーケンスは他の仕様にしかなく、動作が異なるものもあります。必ず使用する言語でテストしてください。
一致が1件しか見つからないのはなぜですか?
g(global)フラグがオフになっています。JavaScript はこのフラグがないと最初の一致だけを返します。すべての一致を検索するには、g にチェックを入れてください。
パターンをスラッシュで囲んで入力する必要がありますか?
いいえ。パターンだけを入力してください。たとえば /\d+/g ではなく \d+ と入力し、フラグはチェックボックスで選択します。結果の下には、コードにコピーできる JavaScript リテラル形式が表示されます。
パターンを入力したらページが遅くなったのはなぜですか?
(a+)+ や (.*)* などの入れ子になった量指定子は、一致がない場合にエンジンが指数関数的な数の経路を試す原因になることがあります。たとえば .* を [^,]* に置き換えてパターンを具体的にするか、アンカーを使ってください。影響を抑えるため、テスターではテキストを100,000文字に制限しています。
プライバシー
パターンとテキストは、ブラウザーの JavaScript エンジンでのみ処理されます。アップロード、保存、アクセス解析への送信は行われません。