本文へスキップ
SPCXTools

正規表現テスター

正規表現を入力するだけで、全てのマッチ、キャプチャグループ、置換結果をリアルタイムで確認できます。

ローカルで動作 — ファイルは端末から出ません

ツールを読み込み中…

正規表現テスターの使い方

  1. 1パターンボックスに正規表現を入力します。スラッシュは不要です。
  2. 2g (すべて検索)、i (大文字小文字を無視)、m (複数行モード) などのフラグを選択します。
  3. 3テスト文字列に検索対象のテキストを貼り付けます。マッチした部分が即座にハイライトされ、数がカウントされます。
  4. 4各マッチの位置とキャプチャグループを一覧表で確認します。
  5. 5置換にチェックを入れ、$2: $1 のように置換後の文字列を入力すると、String.replace の結果をプレビューできます。

正規表現をリアルタイムでテスト

正規表現は強力ですが、読みにくいことでも有名です。この正規表現テスターを使えば、入力中にパターンの動作を正確に確認できます。全てのマッチがテキスト内でハイライトされ、カウントされ、その位置とキャプチャグループが一覧表示されます。置換プレビュー機能を使えば、コードで実行する前に検索と置換の結果を確認できます。すべての処理はブラウザ内でローカルに実行され、バックグラウンドワーカーが暴走パターンからページを保護します。

主な機能

  • テスト文字列内の一致箇所をリアルタイムでハイライト
  • g, i, m, s, u のフラグ切り替えと、完全な /pattern/flags リテラルの表示
  • 位置、番号付き・名前付きキャプチャグループを含むマッチ一覧表
  • $1, $<name>, $& などの置換パターンに対応した置換プレビュー
  • 不正な構文に対する分かりやすいエラーメッセージと、壊滅的なバックトラックを防ぐ安全タイムアウト

具体的な使用例

入力値の検証。 フォームに追加する前に、郵便番号、製品コード、ユーザー名などのパターンを、有効・無効なサンプルリストを使って作成・テストします。

データの抽出。 ログやドキュメントからメールアドレス、URL、日付、IDなどを抜き出します。キャプチャグループを使えば、各マッチをユーザー名とドメインのように部分に分割できます。

検索と置換。 日付の形式を MM/DD/YYYY から YYYY-MM-DD に変更したり、変数名を一括で変更したり、エクスポートされたデータを整形したりします。このツールで置換結果をプレビューし、同じパターンをエディタやスクリプトで使用できます。

正規表現の学習。 量指定子、文字クラス、アンカーなどを試しながら、その効果を即座に確認できます。

クイックリファレンス

構文 意味
. 改行を除く任意の1文字 (sフラグ有効時は改行も含む)
\d \w \s 数字、単語構成文字、空白文字
[abc] [^abc] 角括弧内のいずれかの文字 / いずれでもない文字
* + ? 0回以上、1回以上、0回または1回
{2,5} 2回から5回
^ $ 文字列の先頭と末尾 (mフラグ有効時は各行の先頭と末尾)
(…) (?<name>…) キャプチャグループ、名前付きグループ
(?:…) キャプチャしないグループ
(?=…) (?!…) 肯定先読み、否定先読み
\b 単語境界

量指定子はデフォルトで貪欲(greedy)です。? を追加する(例: .*?)と、非貪欲(lazy)になります。処理後のリストを整形するには、重複行の削除ツールや、変更前後を比較できる差分チェックツールをお試しください。

よくある質問

このテスターはどの正規表現エンジンを使用していますか?
お使いのブラウザに搭載されているJavaScript (ECMAScript) の正規表現エンジンを使用します。これはNode.js、Deno、フロントエンドのコードで使われるものと同じです。ほとんどの構文はPCRE、Python、Javaと共通ですが、所有格量指定子(非対応)や後読み(モダンブラウザで対応)など、一部の機能は異なります。
正規表現が1つのマッチしか見つけられないのはなぜですか?
g (グローバル) フラグがない場合、JavaScriptは最初のマッチで停止します。テキスト内の全てのマッチを見つけるには、gフラグをオンにしてください。
置換文字列でキャプチャグループを参照するにはどうすればよいですか?
番号付きグループには $1、$2などを、(?<year>\d{4}) のような名前付きグループには $<name> を、マッチ全体には $& を、ドル記号そのものを表すには $$ を使用します。
正規表現の処理が極端に遅い場合はどうなりますか?
(a+)+$ のような一部のパターンは、特定の入力に対して指数関数的な時間がかかることがあります(「壊滅的なバックトラック」)。このテスターはバックグラウンドワーカーで正規表現を実行し、1秒後に停止させるため、ページがフリーズすることはありません。ネストした量指定子を避けるようにパターンを書き直してください。
sフラグとuフラグは何をしますか?
s (dotAll) フラグは、. が改行文字にもマッチするようにします。u (unicode) フラグは、パターンとテキストをUnicodeのコードポイントとして扱うため、絵文字や \p{L} (任意の文字) のような \p{…} プロパティエスケープに必要です。
入力したテキストはアップロードされますか?
いいえ。マッチングと置換の処理は、お使いのブラウザ内でローカルに実行されます。