JavaScript 互換の正規表現をサンプルテキストに対して実行し、一致箇所の確認と置換結果のプレビューをコードに組み込む前に行えます。サンプルテキスト、JavaScript 互換のパターン、必要に応じて global・大文字小文字の無視・複数行・dotAll・unicode の各フラグ、置換文字列を指定すると、すべての一致と置換結果を表示します。
一致させたい規則を書くか、現在のパターンを確認します。テスターのテキストは端末内に留まります。
このテスターはブラウザーと同じ JavaScript エンジンでサンプルテキストにパターンを適用するので、ここで一致するパターンはアプリケーションでも一致します。有効なフラグ、各一致の位置、キャプチャグループ、置換のプレビューをまとめて確認できます。
パターンは PCRE や Python ではなく JavaScript(ECMAScript)です。方言は大きく重なりますが完全ではなく、他で動いたパターンがここで失敗する最も多い原因がこれです。メールアドレス、URL、IPv4、UUID、日付、時刻、16進カラー、数値の定型パターンはワンクリックで使えます。
ECMAScript です。名前付きグループ (?<name>...)、後読み (?<=...) と (?<!...)、u フラグ付きの \p{Letter} などの Unicode プロパティクラスは現在のブラウザーで使えます。占有量指定子、アトミックグループ、再帰、\A と \Z、(?i) のようなインラインモディファイアはこの言語にはありません。
こうした違いは Python・PHP・Java 向けに書かれたパターンを壊します。(?P<name>...) は (?<name>...) に、\Z は $ に置き換え、モディファイアはパターンからチェックボックスへ移します。この 3 点で実際のほとんどのケースは解決します。
全体検索は最初の一致で止まらずすべての一致を返し、置換でもテキスト全体に適用されます。大文字と小文字を区別しないをオンにすると大文字小文字を問わず一致します。複数行では ^ と $ が文字列の先頭と末尾だけでなく、内部の改行位置にも一致します。
ドットを改行にも一致させると、ドットが改行を消費できるようになり、テキストブロック全体の検索に必要です。Unicode はコードポイント単位の意味論に切り替わり、ドットが絵文字の半分ではなく 1 文字全体に一致し、\p{...} クラスも使えます。
キャプチャグループは開き括弧の順に番号が付きます。非キャプチャグループ (?:...) は番号を消費しないので、選択肢をまとめたいだけのときに便利です。名前付きグループは置換で $<name> として参照でき、パターンが大きくなっても $3 より読みやすくなります。
置換文字列では $1〜$99 がキャプチャグループ、$& が一致全体、$$ がリテラルのドル記号を挿入します。(a+)+ のような入れ子の量指定子をほぼ一致する長い入力に使うと、指数的なバックトラックでページが固まることがある点に注意してください。
いいえ。一致と置換はブラウザー内の JavaScript エンジンで計算され、ツールのボタンはネットワーク要求を行いません。唯一の例外は任意の AI パネルで、同意のチェック後に説明文・現在のパターン・フラグだけを DeepSeek に送信し、サンプルテキストは決して送信しません。
方言が違うためです。Python は名前付きグループを (?P<name>...) と書き、\Z があります。Java と PCRE には占有量指定子とアトミックグループ、PHP には (?i) のようなモディファイアがあります。ECMAScript にはそれらがないため、コピーではなく書き換えが必要です。
全体検索がオフになっているためです。このフラグがないと置換は最初の一致で止まります。JavaScript の String.prototype.replace が非グローバルパターンで示す動作と同じで、全体検索をオンにするとすべて置換されます。
全体検索: 最初だけでなくすべての一致と置換。大文字と小文字を区別しない: 大小を問わず一致。複数行: ^ と $ が内部の改行位置にも一致。ドットを改行にも一致させる: ドットが改行を消費。Unicode: コードポイント単位になり、絵文字が 1 文字として数えられ \p{...} クラスが使えます。
位置は一致の開始インデックスで 0 から数えます。キャプチャグループは $1、$2 のように番号付きで引用符付き表示され、名前付きグループは名前でも表示されます。任意のグループが一致に関与しない場合は空で表示され、パターンのデバッグに役立ちます。
$1〜$99 で対応するグループ、$& で一致全体、$<name> で名前付きグループ、$$ でリテラルのドル記号を挿入できます。JavaScript と同様、全体検索がオフのときは最初の一致だけが置き換わります。