Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

正規表現テスター

正規表現のパターンを対象文字列に当てて、マッチした箇所のハイライト、位置、キャプチャグループ、置換結果をブラウザ上で確認できるツールです。フラグも切り替えられ、入力した内容は端末の外に送信されません。

ツール

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秒を超えた場合は中止します。入れ子の繰り返しなどで処理が終わらないパターンでも、画面は固まりません
  • 処理方式: ブラウザ内で処理し、入力内容はサーバーに送信しません

使い方

本ツールの使い方は以下の通りです:

  1. 「パターン」欄に、正規表現のパターンを入力します。スラッシュで囲まず、本体だけを入力します(例:a+、cat|dog)。バックスラッシュを使う記法も、そのまま入力できます。
  2. 「フラグ」で、g、i、m、s、u、yを切り替えます。既定ではgだけがオンです。
  3. 「対象文字列」欄に、マッチを確かめたい文字列を入力します。複数行も入力できます。
  4. 置換を確かめたいときは、「置換する」をオンにして、置換文字列を入力します。置換文字列が空のときは、マッチした部分を削除した結果になります。
  5. 入力が止まると自動で実行され、下部に結果が表示されます。
    • ハイライト:対象文字列の中で、マッチした箇所に色が付きます。隣り合うマッチは、色と下線の種類で区別できます。
    • マッチ一覧:マッチごとに、番号、位置、行と列、マッチした文字列、キャプチャグループの値が表示されます。
    • 置換結果:「置換する」をオンにしたときに表示されます。
    • パターン、フラグ、対象文字列、置換の設定を変えると、自動で実行し直します。
  6. 処理が2秒を超えると中止され、エラーが表示されます。パターンに入れ子の繰り返しなどがないか確認してください。
  7. 構文が正しくないパターンのときは、入力が止まってから少し後に、ブラウザのエラーメッセージが表示されます。パターンを修正すると、自動で実行し直します。
  8. 必要に応じて以下を選択することができます。
    • コピーボタン(値の右にあるアイコン)
      • マッチした文字列、キャプチャグループの値、置換結果をクリップボードにコピーできます。「全マッチをコピー」では、マッチした文字列を改行区切りでまとめてコピーできます。コピーできると、アイコンがチェックマークに変わります。
    • 「リセットする」ボタン
      • 入力内容と結果を消去し、フラグと「置換する」を初期値に戻します。

※ 入力した内容はブラウザ内で処理され、サーバーには送信されません。

関連コンテンツ

関連IT用語