マッチ結果

各オクテットを 25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d で判定するため、0〜255だけを受け付けます。192.168.1.20 や 8.8.8.8 は一致し、256.1.1.1 や 999.0.0.1 は一致しません。単語境界を使っているので長い数字の途中には一致せず、ログからアドレスを抜き出すのに便利です。

使い方

  1. スラッシュの間にパターンを入力するか、/パターン/フラグ 形式のリテラルをそのまま貼り付けます。メールやIPv4などのよく使うパターンをタップすると、検証済みのパターンから始められます。
  2. フラグを切り替えます。g はすべてのマッチを検索、i は大文字・小文字を区別しない、m は ^ と $ を各行に適用、s はドットを改行にもマッチさせます。
  3. テスト文字列を入力または貼り付けます。マッチ箇所は入力と同時にハイライトされ、下に位置とキャプチャグループの一覧が表示されます。
  4. 「置換」に切り替えて $1、$<name>、$& などを使った置換文字列を入力すると、結果がリアルタイムで表示されます。マッチやグループ、結果はタップでコピーできます。
  • ブラウザの JavaScript(ECMAScript)正規表現エンジンを使用します。Node.js、Chrome、Deno と同じ動作で、後読み、名前付きグループ、\p{…} などの Unicode プロパティに対応します。
  • マッチ処理はバックグラウンドで実行され、1秒で打ち切られます。破滅的バックトラックを起こすパターンでもページが固まらず、エラーが表示されます。
  • 置換文字列では \n で改行、\t でタブを挿入できます。$$ はドル記号そのものです。
  • d フラグをオンにすると、各グループの開始・終了位置が表示されます。
  • 共有リンクに含まれるのはパターンとフラグだけで、テスト文字列は含まれません。

結果を変えるフラグ

g は最初の一致だけでなくすべての一致を探し、i は大文字と小文字を区別せず、m は ^ と $ を各行の先頭・末尾に合わせ、s はドットを改行にも一致させます。u はUnicodeと \p{…} を有効にし、y は lastIndex の位置だけで照合し、d は各グループの開始・終了位置を返します。一致が1つしか見つからないときは、たいてい g を付け忘れています。

パターンの読み方

\d は数字、\w は英数字とアンダースコア、\s は空白、\b は単語の境界です。量指定子は直前の要素を繰り返します。* は0回以上、+ は1回以上、? は0回か1回、{2,4} は2〜4回です。量指定子の後ろに ? を付けると最短一致になり、<.+?> は最初の > で止まります。丸括弧はグループを作り、(?<year>\d{4}) は名前付き、(?:…) はキャプチャしないグループです。

先読み (?=…)・(?!…) と後読み (?<=…)・(?<!…) は、前後の内容を消費せずに条件だけ確かめます。たとえば \d+(?= USD) は 120 USD の120には一致し、120 EUR には一致しません。

遅いパターンを避ける

(a+)+ や (.*)* のような入れ子の量指定子は、ほぼ一致するテキストで指数関数的にバックトラックし、サーバーを止めてしまうことがあります(ReDoS)。このツールでは照合をバックグラウンドで1秒まで実行するので、固まる代わりにエラーが表示されます。.* より [^,]* のような具体的な文字クラスを使い、値全体を検証するときは ^ と $ で固定しましょう。

よくある質問

この正規表現チェッカーはどの種類の正規表現に対応していますか?

ブラウザに組み込まれたJavaScript(ECMAScript)の正規表現です。Node.js、Deno、TypeScriptと同じ動作です。構文の多くはPCRE、Python、Javaと共通ですが、強欲な量指定子やアトミックグループなど一部の機能は異なります。

一致が1つしか見つからないのはなぜですか?

g(グローバル)フラグがオフになっています。g がないとJavaScriptは最初の一致で止まります。g をオンにすると、すべての一致がハイライトされ一覧に並びます。

置換でキャプチャグループを使うには?

番号付きグループは $1、$2 など、名前付きグループは $<name>、一致全体は $& と書きます。ドル記号そのものを入れたいときは $$ です。

ドットや括弧そのものに一致させるには?

バックスラッシュでエスケープします。\. はピリオド、\( は丸括弧、\[ は角括弧に一致します。文字クラスの中ではほとんどの記号がそのままの意味になるので、[.] でもピリオドに一致します。

正規表現でメールアドレスを完全に検証できますか?

できません。RFC 5321・5322の規則は幅広く複雑で、実用的なパターンには収まりません。簡単な正規表現で入力ミスを見つけ、実際にメールを送ってアドレスを確認するのが確実です。

テスト用のテキストはどこかに送信されますか?

送信されません。照合はブラウザ内で行います。共有リンクに含まれるのはパターンとフラグだけで、テキストは含まれません。

一緒によく使われるツール

使い方

手順

  1. スラッシュの間にパターンを入力するか、/パターン/フラグ 形式のリテラルをそのまま貼り付けます。メールやIPv4などのよく使うパターンをタップすると、検証済みのパターンから始められます。
  2. フラグを切り替えます。g はすべてのマッチを検索、i は大文字・小文字を区別しない、m は ^ と $ を各行に適用、s はドットを改行にもマッチさせます。
  3. テスト文字列を入力または貼り付けます。マッチ箇所は入力と同時にハイライトされ、下に位置とキャプチャグループの一覧が表示されます。
  4. 「置換」に切り替えて $1、$<name>、$& などを使った置換文字列を入力すると、結果がリアルタイムで表示されます。マッチやグループ、結果はタップでコピーできます。

ショートカット

Enterパターンからテスト文字列へ移動Ctrl + Enterすべてのマッチ、または置換結果をコピー

知っておくと便利

ブラウザ内で動作します。ファイルや文字が端末の外に送られることはありません。