正規表現テスター — マッチ・グループ・置換
正規表現とテストテキストを入力するとマッチがリアルタイムで色付け表示されます。フラグ切替・キャプチャグループ詳細・置換プレビューに対応。
仕組み
各フラグの役割
g(global): 最初だけでなく全マッチを検出。replace-all 動作にも必須。i(case-insensitive): /[a-z]/i は大小両方にマッチ。m(multiline): ^ と $ が行頭・行末にもマッチ。s(dotall): . が改行にもマッチ。u(unicode): コードポイント0xFFFF超(絵文字・サロゲートペアCJK)を正しく扱う。
通常は g/i/m から使い始め、複数行マッチが必要なら s、絵文字や非BMP文字を扱うなら u を必ず付けます(u なしでは . が4バイト絵文字を1文字として認識しません)。
キャプチャグループと置換
丸括弧でキャプチャグループを作れます: /(\d{4})-(\d{2})/ を「2026-05」に当てると「2026」「05」が個別にキャプチャされます。置換では $1・$2 で参照。名前付きグループは (?<name>...) で定義し、置換では $<name> で参照可能。
置換のテクニック: $& でマッチ全体を挿入。$1・$2 でグループ。$$ でリテラルの$。本ツールの置換プレビューは、本番データに適用する前の安全確認に最適です。
よくある落とし穴
バックスラッシュのエスケープ。リテラルの「.」にマッチさせるには「\.」。JavaScript ソースコード内では「\\.」と書く必要がありますが、本ツールでは正規表現ソースをそのまま入力するので「\.」だけでOK。
破滅的バックトラック。/(a+)+/ のような入れ子の量指定子を「aaaa…!」のような文字列に当てると永久にハングします。テストが固まったら入れ子量指定子を疑ってください。設計を見直すのが対策。
貪欲 vs 怠惰。/<.+>/ は「<a><b>」全体にマッチ(貪欲)、/<.+?>/ は「<a>」だけ(怠惰)。用途に応じて選んでください。
よくある質問
›どの正規表現方言に対応?
JavaScript の ECMAScript 正規表現(ブラウザ実装)です。PHP・.NET・Python の PCRE とは細部が異なります。
›後読みが効きません
現代のブラウザ(Chrome・Firefox・Safari・Edge)はすべて2021年以降 (?<=...) と (?<!...) に対応しています。古いブラウザの可能性があります。
›uフラグの効果は?
Unicode を正しく処理します。🎉のような絵文字(UTF-16ではサロゲートペア)が u 付きでは1文字、なしでは2文字として扱われます。
›タブや改行のマッチは?
\t(タブ)、\n(改行)、\r(復帰)、\s(あらゆる空白)。
›置換が効きません
g フラグの付け忘れが最多原因です。g なしの replace は最初のマッチのみ置換します。全置換するには g を付けてください。
›巨大なテキストにも使えますか?
数MBまでなら可能です。それ以上ではブラウザが遅くなります。長文では破滅的バックトラックを起こすパターンを避けてください。
›入力データはサーバーに送信されますか?
いいえ。パターン・テキストともにブラウザ内で処理されます。
›正規表現のチートシートは?
「JavaScript regex cheat sheet」で検索。MDN の RegExp ページが一次情報源として正確です。
関連ツール
最終更新: