正規表現テスター(JavaScript)

JavaScript の正規表現を試せます。一致箇所のハイライト、番号付き・名前付きグループ、置換結果を表示し、処理が長すぎるパターン(ReDoS)は自動で中止します。

  • ブラウザ内で処理(アップロードなし)

前後のスラッシュ(/)は不要です。例:\d+、(?<year>\d{4})

フラグ

$1、$<name>、$&(一致全体)、$$($ そのもの)が使えます。

パターンは 1,000 文字、テスト文字列は 100,000 文字まで。1 秒を超える処理は自動的に中止します。

実行中…

使い方

  1. 正規表現のパターンを入力し、必要なフラグ(g・i・m など)を選びます。
  2. テスト文字列を入力すると、一致箇所がハイライトされ、位置とグループの一覧が表示されます。
  3. 置換後の文字列($1 や $<name> など)を入力すると置換結果を確認でき、コピーできます。

よくある質問

どの正規表現エンジンで動きますか?

お使いのブラウザの JavaScript エンジン(RegExp)で実行します。PCRE・Python・Java などとは一部の構文や動作が異なります。

ページが固まることはありませんか?

マッチングはページとは別の Web Worker で実行し、1 秒を超えると Worker を停止して「時間がかかりすぎた」と表示します。^(a+)+$ のような破滅的なバックトラックが起きてもページは操作できます。

空文字に一致するパターンでも止まりませんか?

はい。空文字に一致した場合は次の位置へ進めるため、無限ループにはなりません(u・v フラグでは文字単位で進みます)。

注意事項・制限

  • 入力内容はこのページ内でのみ処理され、YUCTS のサーバーには送信されません。
  • パターンは 1,000 文字、テスト文字列は 100,000 文字までです。ハイライトと一覧は最初の 1,000 件まで表示します。
  • 利用できる構文やフラグ(v・d など)はブラウザのバージョンによって異なります。対応していないフラグは選べません。
  • 1 秒の制限は端末の性能に左右されるため、遅い端末では通常のパターンでも中止されることがあります。
  • Safari(JavaScriptCore)は、バックトラックが一定量を超えると自ら検索をやめて「一致なし」を返します。このツールは時間のかかった実行に注意を表示しますが、その結果が正しいかは判定できません。

データ出典