DevTool Kit

正規表現テスター

パターンを入力すると、その場で全マッチがハイライトされ、キャプチャグループと名前付きグループが一覧表示されます。置換テンプレートを入れれば `String.replace` の結果もプレビューできます。

マッチ・グループ・位置を確認

各マッチについて、文字位置・マッチ全体・キャプチャグループ(`(?<name>...)` の名前付きも含む)を一覧表示します。位置が見えることで、貪欲な量指定子が想定より多く飲み込んでいる場合や、先読みが意図しない位置でマッチしている場合にすぐ気づけます。

置換のプレビュー

`$1` `$<name>` `$&` を使った置換テンプレートを入力すると、書き換え後のテキストが即座に表示されます。コードベース全体に置換をかける前に動作を確かめる最短の方法です。実行後に取り消すのは高くつきます。

重要なフラグ

`g` は最初の 1 件ではなくすべてを探し、`i` は大文字小文字を無視します。`m` は `^` と `$` を行頭・行末にもマッチさせ、`s` は `.` が改行にもマッチするようにします。`u` は完全な Unicode 処理を有効にし、絵文字や非ラテン文字を含む場合に必要です。

よくある質問

パターンやテキストは送信されますか?

いいえ。貼り付けた内容がブラウザの外に出ることはありません。ページは小さな JavaScript を読み込むだけで、計算はすべて手元の端末で行われます。送信先のサーバーそのものが存在しません。 パターンはブラウザ自身の正規表現エンジンでコンパイルされるため、実際のログ行や顧客データで試しても安全です。

どの方言の正規表現ですか?

JavaScript(ECMAScript)です。ブラウザや Node.js と同じエンジンです。PCRE に近いものの同一ではなく、絶対最大量指定子や再帰はありません。後読みは比較的新しいブラウザが必要です。Python や PHP 向けのパターンもたいてい動きますが、境界条件は確認してください。

何にもマッチしません

よくある原因は、複数件を期待しているのに `g` フラグがない、`.` が改行をまたげない(`s` を追加)、リテラルとして扱いたい `.` や `?` をエスケープしていない、対象テキストの前後に想定外の空白がある、などです。

式の実行が非常に遅いです

重なり合う選択肢の上に量指定子を入れ子にした形(典型的には `(a+)+`)は、惜しくもマッチしない入力に対して指数時間のバックトラックを起こします。内側をより具体的にする、アンカーを付ける、入れ子を単一の文字クラスに置き換える、といった対処が有効です。

関連ツール

テキスト差分命名規則変換JSON 整形JSON → YAMLYAML → JSONBase64 エンコードBase64 デコードURL エンコード・デコード