正規表現テスター
正規表現のパターンを対象文字列に当てて、マッチした箇所のハイライト、位置、キャプチャグループ、置換結果をブラウザ上で確認できるツールです。フラグも切り替えられ、入力した内容は端末の外に送信されません。
ツール
0文字・スラッシュで囲まず、本体だけを入力します
フラグ
0文字
仕様
本ツールの仕様は以下の通りです:
- 正規表現エンジン: お使いのブラウザのJavaScriptの正規表現(RegExp)でパターンを実行します。PCREやPythonなど、他の言語の正規表現には対応しません。使える構文はブラウザに依存し、後読みはSafari 16.4以上など対応するブラウザでのみ使えます。ブラウザが受け付けないパターンは、ブラウザのエラーメッセージをそのまま表示します
- パターンの入力: スラッシュで囲まず、パターンの本体だけを入力します。スラッシュを入力した場合は、スラッシュも文字としてマッチの対象になります
- フラグ: g(すべてのマッチを探す。既定でオン)、i(大文字と小文字を区別しない)、m(行ごとに先頭と末尾を判定する)、s(ドット(.)が改行にもマッチする)、u(Unicodeとして扱い、絵文字などを1文字として数える)、y(直前のマッチの続きの位置からだけ探す)を切り替えられます。gがオフのときは、最初の1件だけを表示します
- マッチの表示: マッチした箇所を、対象文字列の上で2色(黄系と青系を交互に。下線は実線と破線)でハイライトします。マッチ一覧には、番号、位置、行と列、マッチした文字列、キャプチャグループを表示します
- キャプチャグループ: 番号、名前(名前付きキャプチャグループの場合)、値、位置を表示します。マッチに参加しなかったグループは「(未参加)」、空文字にマッチしたグループは「(空文字)」と表示します。グループの位置を取得できないブラウザでは、位置を「-」と表示します
- 位置の数え方: 位置はUTF-16のコード単位で0から数え、終了位置はその文字を含みません(JavaScriptのindexと同じです)。行と列は1から数えます。列はその行の先頭からのコードポイント数で、絵文字などのサロゲートペアは1列と数えます。結合文字は1文字に束ねません
- 改行の扱い: 行の区切りはLFとCRLFで、CRLFは1つの改行として数えます。単独のCR、U+2028、U+2029は行の区切りとして数えません。mフラグの行の判定はJavaScriptの仕様に従うため、これらの文字の扱いが行と列の表示と異なる場合があります
- 空文字のマッチ: 空文字にマッチした場合は、次の位置に進めて探し続けます(uフラグがオンのときは1コードポイント、オフのときは1コード単位進めます)。空文字のマッチは「(空文字)」と表示し、ハイライトでは縦線で位置を示します
- 上限: マッチは1000件まで表示し、それを超えた分は表示を打ち切ります。入力できる文字数は、パターンが1000文字、対象文字列が100000文字、置換文字列が1000文字までです。上限を超えると実行しません(入力は切り捨てません)
- 置換: 「置換する」をオンにすると、JavaScriptの置換(replace)と同じ規則で置換結果を表示します。置換文字列では、ドル記号に番号を続けた形式(番号のキャプチャグループ)、ドル記号に山括弧で囲んだグループ名を続けた形式(名前付きキャプチャグループ)、ドル記号にアンパサンドを続けた形式(マッチした文字列全体)、ドル記号にバッククォートを続けた形式(マッチより前の部分)、ドル記号にシングルクォートを続けた形式(マッチより後の部分)、ドル記号を2つ続けた形式(ドル記号1文字)が使えます。存在しない番号を指定した場合は、書いた文字列がそのまま残ります。グループ名を指定した場合は、パターンに名前付きキャプチャグループが1つもないときは書いた文字列がそのまま残り、名前付きキャプチャグループがあるパターンで存在しない名前を指定したときは空文字に置き換わります。gがオフのときは最初の1件だけを置換します。置換は1000件の表示上限に関係なく、全件に対して実行します。置換結果が1,000,000文字を超える場合は表示しません
- キャプチャグループの表示上限: マッチ一覧に表示するキャプチャグループは、全マッチの合計で5000件までです。超えた分のマッチでは、キャプチャグループの表示を省略します(マッチの件数、ハイライト、置換結果には影響しません)
- 長い値の表示: マッチ一覧では、長い値を先頭100文字まで表示します。マッチした文字列はコピーで全文を取得できます。キャプチャグループの値が100文字を超える場合は、コピーボタンを表示しません
- 自動実行: パターン、フラグ、対象文字列、置換の設定を変えると、入力が止まってから約0.3秒後に自動で実行します。実行中に入力を変えた場合は、前の実行を中止して実行し直します。更新中は前の結果を薄く表示し、コピーできません。構文が正しくないパターンのエラーは、入力が止まってから約0.6秒後に表示します
- 処理時間の上限: パターンはブラウザのバックグラウンド処理(Web Worker)で実行し、2秒を超えた場合は中止します。入れ子の繰り返しなどで処理が終わらないパターンでも、画面は固まりません
- 処理方式: ブラウザ内で処理し、入力内容はサーバーに送信しません
使い方
本ツールの使い方は以下の通りです:
- 「パターン」欄に、正規表現のパターンを入力します。スラッシュで囲まず、本体だけを入力します(例:
a+、cat|dog)。バックスラッシュを使う記法も、そのまま入力できます。 - 「フラグ」で、g、i、m、s、u、yを切り替えます。既定ではgだけがオンです。
- 「対象文字列」欄に、マッチを確かめたい文字列を入力します。複数行も入力できます。
- 置換を確かめたいときは、「置換する」をオンにして、置換文字列を入力します。置換文字列が空のときは、マッチした部分を削除した結果になります。
- 入力が止まると自動で実行され、下部に結果が表示されます。
- ハイライト:対象文字列の中で、マッチした箇所に色が付きます。隣り合うマッチは、色と下線の種類で区別できます。
- マッチ一覧:マッチごとに、番号、位置、行と列、マッチした文字列、キャプチャグループの値が表示されます。
- 置換結果:「置換する」をオンにしたときに表示されます。
- パターン、フラグ、対象文字列、置換の設定を変えると、自動で実行し直します。
- 処理が2秒を超えると中止され、エラーが表示されます。パターンに入れ子の繰り返しなどがないか確認してください。
- 構文が正しくないパターンのときは、入力が止まってから少し後に、ブラウザのエラーメッセージが表示されます。パターンを修正すると、自動で実行し直します。
- 必要に応じて以下を選択することができます。
- コピーボタン(値の右にあるアイコン)
- マッチした文字列、キャプチャグループの値、置換結果をクリップボードにコピーできます。「全マッチをコピー」では、マッチした文字列を改行区切りでまとめてコピーできます。コピーできると、アイコンがチェックマークに変わります。
- 「リセットする」ボタン
- 入力内容と結果を消去し、フラグと「置換する」を初期値に戻します。
- コピーボタン(値の右にあるアイコン)
※ 入力した内容はブラウザ内で処理され、サーバーには送信されません。