piapia123
ja

正規表現テスト

テキスト処理

処理はすべてブラウザ内で完結します。データは送信されません

テスト用テキスト
一致箇所
キャプチャグループ
置換のプレビュー

よく使う正規表現

一致と置換はブラウザ内で完結します。正規表現もテキストも送信されません。

ブラウザで正規表現を調整できます。1行書けば1行がハイライトされ、キャプチャグループは名前ごと一覧になり、置換文字列を入れればテキスト全体が置換された結果をプレビューできます。壊滅的なバックトラックへの対策も入っています —— (a+)+ のようなパターンは長いテキストでタブを応答不能にするため、静的に検出して長いテキストでは実行を拒否し、理由を明確に伝えます。計算し終えたふりはしません。

機能

  • 一致箇所をリアルタイムでハイライト。ゼロ幅一致(\b、(?=x))も位置を個別に示します
  • キャプチャグループの表:グループ番号、名前付きグループの名前、値。参加しなかったグループは空のまま示します
  • 置換プレビュー:$1、$&、$<name> に対応し、常に全体置換としてプレビューします
  • g / i / m / s / u の5つのフラグを個別に切り替え可能。動作は JavaScript エンジンと完全に同じです
  • ReDoS 対策:入れ子の量指定子と量指定子付きの選択を検出し、長い入力では実行を止めて理由を説明します
  • 限界を正直に伝えます:入力が10万文字超、一致が2000件超、走査が120ミリ秒超のいずれの場合も通知します
  • よく使う正規表現の早見表を内蔵(メール、URL、IPv4、日付、時刻、漢字、携帯番号、色、タグなど)。クリックで入力欄に入り、サンプルテキストも付きます

使い方

  1. 2本のスラッシュの間に正規表現を入力し、必要に応じてフラグをチェックします
  2. テスト用のテキストを左側に貼り付けると、一致箇所がリアルタイムでハイライトされます
  3. 置換する場合は置換文字列を入力します。下に置換後の全体が表示されます
  4. 「よく使う正規表現」から1つクリックすると、すぐに適用して結果を確認できます

よくある質問

正規表現が何も返さないのはなぜですか?
テキストが長く、パターンに入れ子の量指定子((a+)+、(\d+\s?)* など)がある場合、ツールは実行を止めてその旨を伝えます。この種のパターンは長いテキストで壊滅的なバックトラックを起こし、そのまま走らせるとタブが数秒から数十秒応答しなくなります。まず短いテキストでパターンを検証するか、入れ子を含まない形に書き換えてください。
「グローバルが無効」と表示されるのはなぜですか?
正規表現に g がない場合、JavaScript は最初の一致しか返しません。これはエンジンの実際の動作で、ツールはそれにそのまま従います。勝手に g を補ったりはしません —— ここで通ったものが、コードに貼り付けると別の結果になるからです。
長すぎるテキストは切り詰められますか?
切り詰められます。10万文字を超える場合は前半だけを走査し、そのことを画面にはっきり書きます。ページの応答速度を守るためです —— 同期の正規表現は一度実行を始めると中断できないので、入力の規模で制限するしかありません。
正規表現やテキストは送信されますか?
いいえ。一致の判定と置換はすべてブラウザ内で完結し、ページはリクエストを一切送りません。オフラインでも使えます。

関連ツール