正規表現チェッカー
パターンを入力すると、一致箇所とグループ、位置をすぐに表示します。
入力はブラウザの外に出ませんECMAScript基準日 2026.10.03
対象テキスト
一致箇所
結果がここに表示されます
正規表現チェッカーの使い方
- 1「正規表現」欄に前後のスラッシュを除いたパターンを入力するか、「例を入れる」を押します。
- 2「対象テキスト」に確認したい文章を貼り付け、必要なフラグを選びます。一致箇所がすぐにハイライトされます。
- 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 公開