正規表現テスター
正規表現をブラウザ内で即時テスト。マッチ位置・キャプチャグループをハイライト表示。
このツールについて
正規表現は、文字列の中から「特定の形」を探すためのパターン記法です。このツールはパターンを対象テキストに当ててマッチ箇所をその場でハイライトし、キャプチャグループの中身も表示します。実行も含めすべてブラウザ内で行われ、入力は外部へ送信されません。
基本の記号
- . … 任意の 1 文字/\d … 数字/\w … 英数字とアンダースコア/\s … 空白。
- * … 0 回以上/+ … 1 回以上/? … 0 か 1 回/{2,5} … 回数指定。
- [abc] … いずれか 1 文字/^ … 行頭/$ … 行末/\b … 単語の境界/( ) … グループ化と取り出し。
貪欲(greedy)と控えめ(lazy)
a.*b のような * や + は、既定で「できるだけ長く」一致します(貪欲)。<.*> を <a><b> に当てると全体が 1 つのマッチになります。最短で止めたいときは * や + の後ろに ? を付けて .*?(控えめ)にします。<.*?> なら <a> と <b> を別々に拾えます。抽出がうまくいかないときは、まずここを疑うと解決しやすいです。
主なフラグ
- g … すべてのマッチを探す/i … 大文字小文字を区別しない。
- m … ^ と $ を各行の行頭・行末に/s … . を改行にも一致させる。
- u … Unicode モード(絵文字や \p{...} を正しく扱う)。
「壊滅的バックトラッキング」(ReDoS)に注意
(a+)+$ のように繰り返しが入れ子になったパターンは、一致に失敗する入力を与えると試行回数が爆発的に増え、処理が固まることがあります(ReDoS と呼ばれる遅延・停止)。外部からの入力に正規表現を使うサービスでは特に危険なので、繰り返しの入れ子は避けるのが安全です。このツールは暴走を防ぐためマッチ件数に上限を設けています。
使い方
- パターン欄に正規表現を入力し、必要なフラグ(i/m/s/u)を選びます。
- 対象テキストを入力すると、マッチした箇所がハイライトされます。
よくある質問
どの正規表現エンジンで動きますか?
ブラウザ標準の JavaScript の正規表現エンジンで実行されます。実際のマッチ結果は常に JavaScript のものです。他言語との違いは互換性チェックとして別途指摘します。
どんなフラグに対応していますか?
g(全体検索)、i(大文字小文字を区別しない)、m(複数行)などの標準的なフラグに対応しています。全マッチを一覧するため、内部的にグローバル検索として扱います。
キャプチャグループの中身も確認できますか?
はい。マッチ位置のハイライトに加え、括弧で取り出したキャプチャグループの内容も確認できます。抽出ルールの検証に役立ちます。
他言語(Python・Go・PCRE)との違いも分かりますか?
はい。実行は JavaScript エンジンですが、指定したフレーバーに持っていく際の注意点(名前付きグループの書き方、後方参照・後読みの非対応、\d の扱いの違いなど)を指摘します。移植時のミスを事前に防げます。
入力したパターンやテキストはサーバーに送られますか?
いいえ。処理はすべてブラウザ内で完結し、パターンや対象テキストが外部に送信されることはありません。ログや個人情報を含むテキストでも安心して試せます。
大量にマッチする場合はどうなりますか?
暴走を防ぐためマッチ件数には上限があり、極端に多くのマッチが出る場合は途中で打ち切られます。対象を絞るか、パターンをより具体的にすると扱いやすくなります。