正規表現テスター

パターンを書くと一致箇所が文脈付きで強調表示されます。ボタン操作はなく、エンジンはブラウザ自身の JavaScript RegExp です。

使い方

  1. スラッシュを付けずにパターンを入力し、必要なフラグをオンにします。一致は入力と同時に更新され、押すボタンはありません。
  2. テストするテキストを貼り付けてください。一致箇所は結果パネルで強調表示され、それぞれの位置、一致した文字列、キャプチャグループが一覧になります。
  3. 一致した値をまとめてコピーするか、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 に入ることもありません。

パターンが期待どおり動いたあとによく使われるツールです。