正規表現テスター オンライン — JavaScript の正規表現をリアルタイムでテスト

サンプルテキストに対して正規表現をテストし、マッチのハイライト、キャプチャグループ、置換のプレビューをリアルタイムで確認。無料、ブラウザ上で動作。

//g
プリセット:
2 件一致
Contact us at hello@freetoolsforweb.com or sales@example.org.
Site: https://freetoolsforweb.com/tools — call (416) 555-0199.
Launched 2026-09-08, colours #244b3f and #fff, server 10.0.0.12.
#一致位置グループ
1hello@freetoolsforweb.com14—
2sales@example.org43—

共有リンクを開くと、同じパターン、フラグ、テスト文字列、置換文字列でこのテスターが開きます。これらはリンクの # 以降に保存され、ブラウザがサーバーに送信することはありません。

すべてブラウザ内で動作します。入力内容が送信・保存されることはありません。 すべての無料ツールを見る.

不具合や改善できそうな点を見つけましたか?いただいたメッセージはすべて読み、すぐに対応します。

この無料の正規表現テスターは、ブラウザ上で JavaScript の正規表現をサンプルテキストに対して実行し、入力に合わせてすべてのマッチをハイライトします。マッチごとにキャプチャグループ、名前付きグループ、マッチの位置が一覧表示され、置換モードでは $1 や $<name> による置換を String.replace とまったく同じ結果でプレビューできます。共有リンクをコピーすれば、開いた人は誰でも同じパターン、フラグ、テストテキストを見られます。当サイトの正規表現チートシートの例も、すべて同じようにここで開けます。

エンジンはお使いのブラウザ自身のものなので、結果は Node.js、React、Deno、あらゆる Web フレームワークと完全に一致します。PCRE(PHP、Python の re、grep -P)とは近いものの同一ではありません。特に重要な違いである後読みの対応、強欲な量指定子、\A アンカーについては下で説明しているので、ここで動いたパターンがほかの環境で予想外の動きをすることはありません。

使い方

  1. 前後のスラッシュなしでパターンを入力するか、プリセット(メール、URL、電話番号、日付、IPv4、16 進カラーコード)をクリックして、動作が確認済みのものから始めます。
  2. 必要なフラグにチェックを入れます。g は最初のマッチだけでなくすべてのマッチを探し、i は大文字・小文字を区別せず、m は ^ と $ を各行の先頭と末尾にマッチさせます。
  3. テストテキストを貼り付けます。マッチはすぐにハイライトされ、表に各マッチとそのキャプチャグループが一覧表示されます。
  4. 「置換」を開くと置換をプレビューできます。番号付きグループには $1、名前付きグループには $<name>、マッチ全体には $& を使います。
  5. JavaScript のリテラルには /pattern/flags の形で、パターンが文字列から来る場合は new RegExp() の形でコピーします。
  6. 「共有リンクをコピー」をクリックすると、設定一式を同僚に送れます。状態はリンクの # の後ろに入っているので、相手が開いてもサーバーには送信されません。

よくある質問

どの正規表現の方言を使っていますか?

ECMAScript(JavaScript)です。ブラウザがパターンを直接評価するからです。これは Node.js、フロントエンドのコード、JSON スキーマのパターンで使われているものです。Python、Java、Go、PHP、grep にはそれぞれ独自のエンジンがあり、基本は共通でも細部が異なります。変わったものを公開する前には、対象の言語でテストしてください。

パターンが最初のマッチしか見つけないのはなぜですか?

g(グローバル)フラグがオフになっています。g がないと JavaScript は最初のマッチで止まります。入力チェックにはそれで正しいのですが、抽出には不向きです。すべてのマッチを一覧表示するには g をオンにしてください。

複数行にまたがってマッチさせるには?

2 つの異なるフラグがそれぞれ別のことをします。m(複数行)は ^ と $ を各行の先頭と末尾にマッチさせます。s(dotAll)は . を改行文字にもマッチさせます。s を使わずに「改行を含む任意の文字」を表す定番の書き方は [\s\S]* です。

名前付きキャプチャグループとは何ですか?

(?<year>\d{4}) は 4 桁の数字を year という名前でキャプチャするので、かっこを数える代わりに match.groups.year で読み取れ、置換では $<year> として参照できます。名前付きグループは長いパターンを読みやすくし、ほかのグループを追加・削除する編集にも影響されません。

正規表現が遅くなったり危険になったりすることはありますか?

あります。(a+)+ のような入れ子の量指定子や重なり合う選択肢を持つパターンは、入力によっては指数関数的な時間がかかります(壊滅的バックトラッキング。実際のサービス拒否攻撃の手口です)。パターンでこのページが固まるなら、それはサーバーを固まらせるのと同じことです。.* より具体的な文字クラスを使い、量指定子の入れ子は避けましょう。

メールアドレスは正規表現で検証すべきですか?

ゆるやかにだけです。ここのプリセットは一般的な形にマッチし、明らかな打ち間違いをはじきます。フォームがすべきことはそれだけです。RFC 5322 に完全に準拠したパターンは何千文字にもなり、それでもメールボックスが存在するかどうかはわかりません。形をチェックしたら、確認メールを送りましょう。

簡単な正規表現チートシート

• . 改行以外の任意の文字 · \d 数字 · \w 単語構成文字 · \s 空白文字 · \b 単語境界

• * 0 回以上 · + 1 回以上 · ? 省略可 · {n,m} n 回以上 m 回以下 · これらの後に ? を付けると最短一致

• [abc] いずれか · [^abc] いずれでもない · [a-z] 範囲 · (x|y) 選択 · (?:x) キャプチャしないグループ

• ^ 先頭 · $ 末尾 · (?=x) 先読み · (?!x) 否定先読み · (?<=x) 後読み(JavaScript と PCRE。すべてのエンジンではありません)

• 特殊文字はバックスラッシュでエスケープ:\. \? \( \[ \\

JavaScript と PCRE:実際に遭遇する違い

JavaScript には強欲な量指定子(a++)、アトミックグループ、\A や \Z のアンカーがなく(m フラグなしの ^ と $ を使います)、インライン修飾子は ES2025 で導入されたスコープ付きの形 (?i:...) だけで、パターンの先頭にスコープなしの (?i) を書くと構文エラーになります。一方、後読み、名前付きグループ、u フラグをオンにしたときの \p{L} のような Unicode プロパティエスケープには対応しています。Python の re はさらに、regex パッケージなしでは \p{...} が使えず、Go の RE2 には先読み・後読みが一切ありません。パターンを複数の言語で動かす必要があるなら、共通部分にとどめましょう。文字クラス、単純なグループ、アンカー、最長一致または最短一致の量指定子です。

関連する無料ツール

  • 正規表現早見表 — 正規表現のすべてのトークンを、動作する例、JavaScript・PCRE/PHP・Python・Go・Java・.NET での対応状況、入力済みの正規表現テスターを開く「試す」リンク付きで掲載。
  • JSON 整形 — JSON を整形、圧縮(minify)、検証し、解析エラーは行と列で位置を示します。ブラウザ上で動作、アップロード不要。
  • Base64 エンコーダー / デコーダー — テキストやファイルを Base64 にエンコードし、画像を CSS や <img> のコード付きでデータ URI に変換、Base64 をプレビュー可能なファイルにデコードできます。データはブラウザの外に出ません。
  • 文字数カウント — 単語数、文字数、文の数、読了時間を数え、入力しながら X、LinkedIn、Instagram、YouTube、SEO、SMS の上限を確認できます。