正規表現をテスト・デバッグする
このテスターでできること
正規表現は、メールアドレスの形式や日付、電話番号など、繰り返し現れる文字列のパターンを簡潔に表した記述です。このツールは入力したパターンをブラウザーのJavaScript正規表現エンジンでコンパイルし、変更するたびにテストテキストへ即座に適用します。「実行」ボタンを押す必要はありません。一致した箇所はテキスト上でそのままハイライトされ、詳細パネルには各マッチのキャプチャグループと文字位置が一覧表示されます。
JavaScriptやNode.jsのRegExpと同じエンジンを使っているため、ここで見える結果はコードの動作とそのまま一致します。
こんなときに使う
パターンが思ったとおりに動かないときに、まず開きたいツールです。console.logを差し込んでスクリプトを何度も走らせる代わりに、代表的なテキストを貼り付けてパターンを調整すれば、ハイライトがリアルタイムに変化します。ゼロからパターンを組み立てるときにも便利で、まず緩く書いて、狙った箇所だけが光るまで少しずつ絞り込めます。
マッチ総数、グループ数、パターンとテキストの長さ、処理時間といったライブ統計は、破滅的バックトラッキングや意図せず貪欲になった量指定子を、本番に届く前に見つける手がかりになります。
例:日付を認識する
ログからISO形式の日付を抜き出したいとします。パターン (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) は 2026-07-18 に一致し、year・month・day という3つの名前付きグループに分解します。フラグ g を有効にすると、最初の1件だけでなくテキスト中のすべての日付が取得されます。\d{2} を \d{1,2} に変えれば、2026-7-8 のような1桁の月も受け付けます。
注意点とエッジケース
フラグ次第で挙動は大きく変わります。i は大文字・小文字を区別しない一致にし、m は ^ と $ を各行に対応させ、s はドットが改行にも一致するようにし、u は完全なUnicode処理を有効にします。. * + ? ( ) [ ] { } \ | ^ $ などの文字は特別な意味を持つため、文字どおりに一致させるにはバックスラッシュでエスケープが必要です。たとえばリテラルのドットは、任意の1文字に一致する . ではなく \. と書きます。名前のないグループは開き括弧の順に1から番号が振られ、(?:...) は何もキャプチャしないグループを作ります。