正規表現テスター
JavaScript正規表現をライブハイライトとキャプチャグループ分解付きで構築・テスト。6フラグ、5サンプル、暴走入力対策付き。ブラウザ完結。
スラッシュの間にパターン、右側でフラグを切り替え。各フラグにホバーで説明を表示。
正規表現テスターとは?
正規表現テスターは正規表現をリアルタイムでコンパイルし、テスト入力のどの部分文字列が一致するかを — インデックス・長さ・キャプチャグループを含めて — 表示します。
正規表現フラグの役割は?
各フラグがエンジンの挙動を変えます: <code>g</code>=全一致、<code>i</code>=大小無視、<code>m</code>=<code>^/$</code>を行ごと、<code>s</code>=<code>.</code>が改行に一致、<code>u</code>=Unicode、<code>y</code>=sticky。
catastrophic backtrackingの回避
<code>(a+)+b</code>のようなネストされた量指定子は指数時間がかかることがあります。このテスターは入力を100 KBに制限し100 msで中断を試みます。
JSONレスポンスを調べたいですか?JSONフォーマッターをご利用ください。
主な用途
- Email検証: 実際に理解できる実用的なEmail正規表現を構築 — 完全なRFC 5322は巨大すぎ。
- ログ行抽出: サーバーログからリクエストID・エラーコード・タイムスタンプを抽出。
- フォーム入力検証: APIに送信前に電話番号・郵便番号・SKUを検証。
- 検索置換の作成: VS Codeの正規表現検索に貼る前にここでパターンを反復。
- スラッグ/URLパターン: 名前付きキャプチャグループでパスセグメントを抽出するルーティングパターンを構築。
- CI lint設定: ESLintやpre-commit hook用のパターンをコミット前にテスト。
- 大規模データクリーニング: ETLで何百万行に適用する前にCSVサンプルでパイロット。
FAQ
gフラグの意味は?
「グローバル」フラグはエンジンに全一致を見つけるよう指示。無しだと.match()は最初の一致のみ返します。
キャプチャグループとは?
括弧はキャプチャグループを作成し、エンジンが内部の一致を記憶します。(?<名>…)で名前付きグループ、(?:…)で非キャプチャ。
lookaheadとlookbehind、どちらを使う?
Lookahead(?=…)は後続を消費せずチェック、lookbehind(?<=…)は逆方向。コンテキストをマッチに含めず確認するのに便利。
正規表現が遅い/ページが固まる原因は?
おそらくcatastrophic backtracking — ネストされた量指定子が指数的経路を生み出します。possessive quantifierかgreedy-then-lazyで書き直しを。
このツールは正規表現を送信しますか?
いいえ。正規表現はブラウザ内でコンパイル・実行されます。パターンとフラグはlocalStorageに保存されますが、テスト文字列は永続化されません。
数字で見る
- JavaScriptの正規表現はECMA-262仕様に準拠 — すべての最新ブラウザでpolyfillなしでサポート
- 6つのフラグ
g i m s u yが特定の動作を追加 —g=全一致、i=大小無視、s=.が改行に一致 - 「catastrophic backtracking」パターンは指数時間がかかることがある — タイムアウトなしにユーザー由来のパターンをサーバー側で信頼しないこと
- 名前付きキャプチャグループ
(?<name>...)はES2018で標準化され、match.groups.nameでアクセス可能