正規表現テスター
パターンを書くと一致箇所が文脈付きで強調表示されます。ボタン操作はなく、エンジンはブラウザ自身の JavaScript RegExp です。
一致結果
使い方
- スラッシュを付けずにパターンを入力し、必要なフラグをオンにします。一致は入力と同時に更新され、押すボタンはありません。
- テストするテキストを貼り付けてください。一致箇所は結果パネルで強調表示され、それぞれの位置、一致した文字列、キャプチャグループが一覧になります。
- 一致した値をまとめてコピーするか、1 行に 1 件のテキストファイルとしてダウンロードします。
例
パターンとテキスト
(\w+)@(\w+)\.(\w+) 詳細は sato@example.com または suzuki@example.org までご連絡ください。
一致
一致数: 2 #1 [8–23] sato@example.com 1: sato 2: example 3: com #2 [30–45] suzuki@example.org 1: suzuki 2: example 3: org
1 行目がパターン(スラッシュは不要)、残りがテスト用テキストです。範囲はテキスト内の 0 始まり・終端を含まないオフセットで、JavaScript が match.index で返す数値と同じです。グローバル一致は常にオンなので、g の切り替えがなくてもすべての出現を検出します。
ルール・制限・既知の問題
- エンジンはブラウザ自身の JavaScript RegExp です。PCRE、Python、Go、RE2 の方言には対応せず、方言の切り替えもありません。\A、\z、(?i) のようなインラインフラグは使えません。
- グローバル一致は常にオンで、使えるフラグは i、m、s、u だけです。y(sticky)、d(indices)、v(Unicode セット)は提供していません。
- 前後の /…/ は飾りです。JavaScript のリテラルと違い、パターン内の / をここでエスケープする必要はありません。横に表示されるフラグの文字列は、コードでそのまま再利用できます。
- 構文エラーでは、日本語の前置きの後にブラウザ自身のメッセージ(英語)が表示されます。文言はブラウザによって異なります。
- テスト用テキストが空の場合は結果が出ません。テストする行がないため、^$ のようなパターンはここでは確認できません。
- 一致は最大 2000 件まで収集し(その場合の件数は 2000+ と表示)、一覧に描画するのは最初の 200 件です。どちらの上限も黙って切り捨てずに通知します。
- 10 万文字を超えるテキストでも入力と同時に更新されますが、結果が出るまでの待ち時間が長くなります。
- 壊滅的なバックトラックはタブを固まらせることがあります。JavaScript の正規表現は同期的に実行され中断できないため、タイムアウトはありません。信頼できないパターンや巨大なテキストを貼り付けないでください。
- \w、\b、\d は u を付けても ASCII のみです。日本語やアラビア語の文字には \p{L} と u フラグを使ってください。u なしの場合、\p{L} はエラーにならず、黙ってリテラル一致に変わります。
- i はロケール規則ではなく Unicode の単純な大文字小文字の畳み込みを使います。トルコ語の İ と i は一致せず、ß は SS に畳み込まれません。
- 範囲は 0 始まり・終端を含まない UTF-16 のオフセットなので、絵文字は 2 として数えます。参加しなかったグループは —、空文字列に一致したグループは空として表示されます。
- 長さ 0 の一致(\b、a*、(?=x))は細いマーカーで示され、範囲は n–n と表示されます。
- コピーとダウンロードは一致した値だけを 1 行 1 件で出力し、番号、範囲、グループは含みません。改行を含む一致は複数行にわたって出力されます。
- 置換のプレビュー、コード生成、パーマリンク、保存したパターンはありません。パターンは入力欄の外に出ず、URL に入ることもありません。
関連ツール
パターンが期待どおり動いたあとによく使われるツールです。