正規表現テスター
リアルタイムのマッチハイライト、トークンの説明、サンプル文字列生成で正規表現をテスト
- パターンの説明がここに表示されます。
使い方
パターンを入力
正規表現を入力し、関連するフラグを選択します。
テキストをリアルタイムでテスト
ハイライトされた一致とキャプチャグループをリアルタイムで確認します。
解釈と生成
パターンの説明を確認し、サンプル文字列を生成します。
よくある質問
はい。テスターでは global(全体一致)、ignore case(大文字小文字を無視)、multiline(複数行)、dotAll、unicode、sticky の各フラグを切り替えられます。
パーサーがパターンをトークン単位で読み取り、アンカー・文字クラス・グループ・量指定子について平易な言葉で解説を生成します。
はい。サンプル文字列の生成機能は、現在のパターンから代表的な文字列を作成するので、意図どおりにマッチするか手早く確認できます。
.* のような貪欲な量指定子は、できるだけ多くを消費してからバックトラックします。一方、その非貪欲版の .*? は最初の一致で停止します。テキスト say "hi" bye の場合、パターン ".*" は行全体をキャプチャしますが、".*?" は hi だけをキャプチャします。デフォルトは貪欲で、量指定子に ? を付けると非貪欲になります。
丸括弧がキャプチャを行います。(\d{4})-(\d{2}) を 2026-09-19 に適用すると、グループ 1 = 2026、グループ 2 = 09 となり、置換パターンでは $1 でキャプチャしたテキストを再利用できます。(?<year>\d{4}) のような名前付きグループは、複雑なパターンで読みやすくなります。JavaScript では開き括弧の順にグループへ 1 から番号が割り当てられ、グループ 0 は常にマッチ全体を指します。
パターンやテキストに ASCII 以外の文字が関わる場合は u を付けてください。u があると \w と \d が Unicode の規則に従い、\p{L} や \p{Script=Arabic} のようなプロパティエスケープが使え、絵文字も 1 文字として扱われます。u がないと、UTF-16 のサロゲートペアがドットのマッチで半分に分割されることがあります。
デフォルトでは、^ と $ は文字列全体のアンカーとして機能し、. は改行をスキップします。m(multiline)フラグを付けると ^ と $ が代わりに各行の境界でマッチし、s(dotAll)フラグを付けると . が改行をまたげるようになります。ログ解析でよく使われる定番レシピは、両方のフラグを組み合わせた /error.*timeout/gms です。
ブラウザの JavaScript エンジン上で動作するため、ECMAScript(ECMA-262)の正規表現セマンティクスに従います。これは本番 JS で String.prototype.match が使うものと同じエンジンです。PCRE や Python との違いに注意してください。JavaScript には \K や再帰がなく、後読み(lookbehind)は ES2018 でようやく導入されました。Perl や PCRE 向けに書かれたパターンには小さな調整が必要な場合があります。
権威ある参考文献
このツールの根拠となる一次資料です。二次的な要約ではなく、公式の標準規格と仕様に基づいています。