本文へ移動
ZEKILO Dev

正規表現チェッカー

パターンを入力すると、一致箇所とグループ、位置をすぐに表示します。

入力はブラウザの外に出ませんECMAScript基準日 2026.10.03

フラグ

対象テキスト

Escを押してからTabを押すと、入力欄から移動できます。

一致箇所

結果がここに表示されます

正規表現チェッカーの使い方

  1. 1「正規表現」欄に前後のスラッシュを除いたパターンを入力するか、「例を入れる」を押します。
  2. 2「対象テキスト」に確認したい文章を貼り付け、必要なフラグを選びます。一致箇所がすぐにハイライトされます。
  3. 3モードを「置換」または「分割」に切り替えて結果を確認し、「コピー」か「ダウンロード」を押します。

正規表現チェッカーのオプション

フラグ
g はすべての一致を検索します(既定でオン)。i は大文字小文字を無視します。m は ^ と $ が各行で一致するようにします。s はドット(.)が改行にも一致するようにします。u はUnicodeモードです。y は現在の位置でのみ一致を調べます。d はグループごとの開始位置と終了位置を表示します。v(Unicode集合)は対応しているブラウザでのみ表示され、u とは同時に使えません。
モード
検索は一致の一覧を表示します。置換は置き換えたあとのテキストを表示し、置換文字列には $1、$<name>、$& が使えます。分割は String.prototype.split と同じように、一致するたびにテキストを分けます。
時間制限
パターンの実行は最長1秒です。それ以上かかる場合は実行を止めてお知らせします。この制限は変更できません。

文法:PCREではなくJavaScript

このツールはJavaScript(ECMAScript)の文法です。PCRE・Python・Javaとの違いは下の表をご覧ください。

パターンは、ブラウザに内蔵された正規表現エンジンが ECMAScript仕様 に従って実行します。ここで表示される結果は、同じブラウザのJavaScriptコードで RegExp が返す結果と同じです。

機能 JavaScript PCRE (PHP) Python re Java
名前付きグループ (?<name>…) (?<name>…) または (?P<name>…) (?P<name>…) (?<name>…)
名前による後方参照 \k<name> \k<name> または (?P=name) (?P=name) \k<name>
置換文字列でのグループ $1、$<name> $1 または \1 \1、\g<name> $1、${name}
インラインフラグ (?i) 非対応。フラグを選びます 対応 先頭でのみ対応 対応
アトミックグループ (?>…)、a++ 非対応 対応 3.11から対応 対応
後読み (?<=…) 長さの制限なし 長さの上限が必要 固定長のみ 長さの上限が必要
\A、\Z アンカー 非対応。^ と $ を使います 対応 対応 対応
再帰 (?R) 非対応 対応 非対応 非対応
空白とコメントを書けるモード 非対応 x フラグ re.VERBOSE Pattern.COMMENTS
\d ASCIIの数字のみ 既定はASCII すべてのUnicode数字 既定はASCII

時間制限を設けている理由

JavaScriptエンジンの多くは、バックトラックによって一致を探します。(a+)+$ のように繰り返しの中に繰り返しがあるパターンは、テキストがほぼ一致しながら最後で外れる場合、文字が1つ増えるたびにかかる時間が2倍になります。30文字ほどでも数秒かかります。このツールはすべてのパターンを別のバックグラウンドスレッドで実行し、1秒たつと止めて、次の入力のために新しく起動します。そのため入力が止まることはありません。

正規表現チェッカーの例

  • 電話番号を検索(フラグ g)

    1行目がパターン、2行目が対象テキストです。一致は2件で、インデックス5(グループ 010、1234、5678)とインデックス33です。

    入力

    (\d{3})-(\d{4})-(\d{4})
    연락처: 010-1234-5678, 02-123-4567, 010-9876-5432

    出力

    010-1234-5678
    010-9876-5432
  • グループを使って置換

    モード:置換。2行目が置換文字列です。$1 と $3 は1番目と3番目のグループです。

    入力

    (\d{3})-(\d{4})-(\d{4})
    $1-****-$3
    연락처: 010-1234-5678, 02-123-4567, 010-9876-5432

    出力

    연락처: 010-****-5678, 02-123-4567, 010-****-5432
  • 名前付きグループ

    入力

    (?<year>\d{4})-(?<m>\d{2})
    2026-10

    出力

    year: 2026
    m: 10
  • バックトラックが終わらないパターン

    1秒たつと実行を止めます。ページはそのまま使えます。

    入力

    (a+)+$
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab

    出力

    パターンの実行に時間がかかりすぎます
  • 閉じていないグループ

    入力

    (

    出力

    正規表現の構文エラー

例は、このツールを検証している基準ケースの値です。

正規表現チェッカーのよくある質問

入力したデータはサーバーに送信されますか?

いいえ。入力と結果はこのブラウザ内だけで処理され、保存もしません。再読み込みすると消えます。

PHP・Python・Javaで使っていたパターンがエラーになるのはなぜですか?

正規表現の文法は言語によって異なります。(?i) のようなインラインフラグ、アトミックグループ、独占的量指定子、\A のようなアンカーはJavaScriptにはありません。このページの表で、代わりに使う書き方をご確認ください。

「パターンの実行に時間がかかりすぎます」とはどういう意味ですか?

パターンの実行が1秒を超えたという意味です。(a+)+ のように繰り返しの中に繰り返しがあると、エンジンが試す経路が急激に増えます。これを破滅的バックトラックと呼びます。画面が固まらないように実行を中断します。(a+)+$ の代わりに a+$ のように、入れ子をなくしてみてください。

インデックスと行・列はどのように数えますか?

インデックスはJavaScriptの文字列インデックス(UTF-16コード単位)で、match.index と同じ値です。行と列は1から数え、列は文字(コードポイント)単位なので、絵文字も1列です。

どのくらいのテキストと一致件数まで扱えますか?

対象テキストは最大5MBまで入力できます。1MBまでは入力しながら処理し、それを超えると「実行」を押して処理します。一致は先頭の10,000件までハイライトして一覧に表示し、全体の件数は常に表示します。

処理方法・標準

  • 処理する場所:このブラウザ(お使いの端末)。送信も保存もしません。
  • 標準: ECMAScript
  • エンジン: ブラウザ内蔵のRegExpエンジン(ECMAScript) (ブラウザ内蔵)
  • ブラウザごとにエンジンが異なるため、v フラグのような新しい文法は一部のブラウザで使えません。対応していない文法は正規表現の構文エラーとしてお知らせします。
  • Safariのエンジンは、バックトラックが長くなりすぎると自分で処理を打ち切り、一致なしとして返します。そのため速い端末では、(a+)+$ のようなパターンが時間制限のお知らせではなく「一致なし」と表示されることがあります。
  • a* のように空文字列に一致した箇所は、ハイライト欄に細い棒で表示します。
  • 記憶するのはモードとフラグだけです。パターン、対象テキスト、置換文字列は保存しません。
  • 基準日 2026.10.03
  • 変更履歴: 2026.10.03 公開
オープンソースライセンス →
結果がおかしい場合は、エラーを報告する(入力内容は添付されません)