正規表現テストについて
JavaScript の RegExp パターンとテスト文字列を入力すると、一致・キャプチャグループ・位置がリアルタイム更新。ブラウザと同じ ECMAScript エンジン(PCRE/.NET ではありません)。
JSON 行から orderId、access log から IP/HTTP ステータス、メール/URL の試行、HTML 断片の href 確認など、IDE を開かずに検証できます。
できること
パターンとフラグ
パターン欄に / で囲まない本文のみ。g/i/m/s/u/y はボタンで切替。g は非重複の全一致、m は ^/$ を行単位に。
一致一覧とグループ
- グループ 0 は全体一致、1 以降はキャプチャ括弧の順。
- 名前付き (?<name>…) は u フラグ時に名称表示。
- 各行に 0 始まりの start–end インデックス。
ハイライト
パターンが有効で両欄に内容があると、長文貼り付けでも誤一致を目視しやすくハイライトします。
フラグ説明とレシピ
フラグ下に g/i/m/s/u/y の説明。さらに下にメール・URL・UUID・日付・IPv4・クエリ id 等のコピー用例(自動入力はしません)。
他言語との差
先読み・命名グループ・Unicode プロパティは ECMAScript 準拠。PHP/Java からのコピーは書き換え後にここで再テストを。
よくある使い方
アクセスログ
nginx 行に (\d+\.\d+\.\d+\.\d+).*?" (\d{3}) — グループ1 が IP、グループ2 が HTTP ステータス(ログ形式要一致)。
JSON フィールド
"orderId"\s*:\s*"([^"]+)" で 1 行レスポンスを parse せず確認。
ログ内 UUID
RFC 4122 形 + g で correlation id を洗い出し、本番パーサ前に目視。
HTML href
href="([^"]+)" を a 断片に当て、クローラ/サニタイザ前の確認。
よくある質問
- 正規表現をオンラインで試すには?
- パターン欄とテスト文字列を入力し、フラグを本番に合わせる。有効なら件数・ハイライト・各グループ値が出ます。
- /スラッシュ/ で囲む?
- いいえ。JS リテラルではスラッシュの内側だけを入力し、フラグはボタンで。
- Python では動くのにここでダメ?
- JavaScript RegExp のみ。エスケープ、(?<name>) 写法、フラグが異なります。
- グループ 0 とは?
- マッチ全体。1 が第一キャプチャ、RegExp.exec と同じ番号付け。
- regex101 と結果が違う?
- g/m、コードから貼った \ の層、エンジンが PCRE か ECMAScript かを確認。
- 置換は試せる?
- 本版は一致・キャプチャの確認中心。replace はアプリや別ツールで。
パターン例(「正規表現」欄へ)
[\w.+-]+@[\w.-]+\.\w+緩いメール — 大文字混在なら gihttps?://[^\s"'<>]+本文・ログ内 URL(g)[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}UUID 形(g)\d{4}-\d{2}-\d{2}yyyy-MM-dd\b(?:\d{1,3}\.){3}\d{1,3}\bIPv4 形(0–255 厳密ではない)[?&]id=([^&]+)クエリ最初の id=(グループ1)