正規表現テスター
JavaScript の正規表現を、リアルタイムのハイライト、キャプチャグループ、わかりやすい言葉での説明とともにテストします。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const text = 'Hello, wereld!'
for (const [word] of text.matchAll(/\b\w+\b/g)) {
console.log(word)
}概要
正規表現をテキストに対して試し、すべてのマッチをハイライト表示して、キャプチャグループを一覧にします。パターンは時間制限付きの別ワーカーで実行されるため、バックトラックが激しいパターンでもページが固まりません。入力した内容がブラウザの外に出ることはありません。
使い方
- 前後のスラッシュを付けずに、パターンを入力します。
- フラグを選びます。
g(すべてのマッチ)、i(大文字と小文字を区別しない)、m(複数行)、s(ドットが改行にも一致)、u(Unicode)、y(スティッキー)です。 - 検索するテキストを貼り付けます。入力に合わせてマッチがハイライトされ、グループが一覧に表示されます。
- マッチを選ぶと、その位置と各グループの値が表示されます。
- 説明の横の「クイックリファレンス」タブを開くと、トークンを調べてカーソル位置に挿入できます。
例
\b\w+\b で文中の単語を見つけます。
Hello, world! → Hello, world
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) で、名前付きグループを使って日付をキャプチャします。
2026-10-09 → year 2026, month 10, day 09
知っておくと便利なこと
- JavaScript、PCRE2、Rust、Go はそれぞれ専用のエンジンで動作します。後ろの 3 つは、選んだときに読み込まれる WebAssembly モジュールです。
- Python、Java、.NET、POSIX ERE、POSIX BRE はエミュレートです。パターンはそのフレーバーにない構文がないか確認され、書き換えられて PCRE2 上で実行されます。まれな境界ケースでは本物と異なる場合があり、POSIX の選択では最長一致が選ばれますが、エミュレートでは最初に一致した選択肢が使われます。
- 後読み(
(?<=…))と名前付きグループは、最近のブラウザで使えます。 - パターンがタイムアウトした場合は、
(a+)+のような入れ子の量指定子を単純にしてください。
正規表現とは?
正規表現(regex)は、テキストを探すための簡潔なパターンで、正確な語句ではなく、何を探すかを記述します。開発者は検索、検証、データの抽出に使います。このテスターは JavaScript、PCRE2、Rust、Go のパターンをそれぞれ専用のエンジンで実行し、Python、Java、.NET、POSIX は PCRE2 上でエミュレートします。パターンを別の場所へ持ち出す前に、フレーバーを確認してください。
よくある質問
フラグは何をしますか?
g は最初の1件ではなくすべてのマッチを検索し、i は大文字と小文字を区別せず、m は ^ と $ を各行に一致させ、s はドットが改行にも一致するようにし、u は Unicode の完全なサポートを有効にします。
パターンがタイムアウトで止まるのはなぜですか?
特定のテキストに対して、指数関数的に時間がかかるパターンがあります(壊滅的なバックトラック)。ページがフリーズしないよう、テスターは2秒後に実行を止めます。
テキストはどこかに送信されますか?
いいえ。パターンとテキストはブラウザ内で処理され、何もアップロードされません。