本文へスキップ

正規表現チェッカー|JavaScript 正規表現をテスト

JavaScript の正規表現をオンラインでテスト。マッチをリアルタイムに強調表示し、キャプチャグループと名前付きグループ、すべてのフラグ、置換プレビューに対応。1 秒を超える処理は停止します。

ブラウザ内で変換 · 登録不要

//g
フラグ
チートシート
.
改行以外の任意の 1 文字(s フラグで改行も含む)
\d \w \s
数字、単語文字 [A-Za-z0-9_]、空白文字
\D \W \S
数字以外、単語文字以外、空白文字以外
[abc] [^abc]
a・b・c のいずれか / a・b・c 以外の任意の文字
[a-z]
a から z までの任意の文字
^ $
入力の先頭 / 末尾(m フラグでは各行の先頭 / 末尾)
\b
単語の境界
* + ?
0 回以上、1 回以上、0 回か 1 回
{2,5}
2〜5 回({3} はちょうど 3 回、{2,} は 2 回以上)
*? +?
非貪欲(最短一致)版:できるだけ少なくマッチ
(abc)
キャプチャグループ
(?<name>abc)
名前付きキャプチャグループ
(?:abc)
キャプチャしないグループ
\1 \k<name>
グループ 1 / 名前付きグループがマッチした内容を繰り返す
a|b
a または b
(?=a) (?!a)
後ろに a が続く / a が続かない
(?<=a) (?<!a)
前に a がある / a がない
\p{L}
あらゆる言語の任意の文字(u か v フラグが必要)

ブラウザの JavaScript(ECMAScript)正規表現エンジンを使うため、結果は JavaScript のコードと一致します。PCRE、Python、Java など他のエンジンとは一部の構文が異なります。マッチングはバックグラウンドの Worker で実行し、壊滅的なバックトラッキングからページを守るため 1 秒で停止します。

使い方

  1. 正規表現を入力し、必要なフラグにチェックを入れます(g ですべてのマッチを検索)。
  2. テストする文字列を貼り付けます。マッチが強調表示され、インデックスとキャプチャグループとともに一覧表示されます。
  3. 「置換」をオンにすると、$1 や $<name> を使った String.replace の結果をプレビューできます。

変換例

パターン:(?<user>\w+)@(\w+)\.com  フラグ:g
テキスト:[email protected], [email protected]
マッチ:[email protected](user = alice、2 = example)、[email protected]
$<user> at $2 で置換 → alice at example, bob at test

仕様と制限

パターンはブラウザ内蔵の JavaScript RegExp エンジンで実行するため、後読み、名前付きグループ、Unicode プロパティエスケープ、d フラグはあなたのコードとまったく同じように動作します。v フラグはブラウザが対応している場合のみ表示されます。

マッチングは端末上の Web Worker で行い、何もアップロードしません。1 回の実行は約 1 秒で停止し、一覧に表示するマッチは最大 1,000 件です。

FAQ

正規表現でマッチが 1 つしか見つからないのはなぜ?

JavaScript では、g(グローバル)フラグのない正規表現は最初のマッチで止まります。g にチェックを入れるとすべてのマッチを検索し、このツールはそれらをすべて一覧表示します。

壊滅的なバックトラッキングとは?

(a+)+$ や (.*)* のような一部のパターンは、ほぼマッチするテキストに対して指数関数的な時間がかかることがあります。このツールは正規表現を別の Worker で実行し 1 秒で停止するため、ページは応答したまま、代わりにエラーを表示します。

ここでテストした正規表現は Python や PHP でも動きますか?

多くの場合は動きますが、必ずではありません。このツールは JavaScript のエンジンを使っています。Python、PHP(PCRE)、Java では名前付きグループ、後読み、フラグなどの機能や構文が異なるため、それらに依存するパターンは改めて確認してください。

形式の参考資料

ツールページの更新日: