正規表現テスター

JavaScript の正規表現をその場でテスト。一致した箇所を強調表示し、キャプチャグループと名前付きグループを一覧表示。フラグの切り替えと置換のプレビューもブラウザ内で行えます。

/ /g
フラグ

一致結果

一致するものはありません

# 位置 一致した文字列 グループ

置換

正規表現とは

正規表現(Regex)は、「数字 4 桁、ハイフン、数字 2 桁」のように文字列のパターンを表す書き方です。入力チェック、ログの検索、値の抽出、一括置換などによく使われます。このツールはブラウザの JavaScript エンジンを使うため、結果はブラウザや Node.js の String.prototype.match、replace と同じになります。

使い方

  1. 前後のスラッシュを付けずにパターンを入力し、必要なフラグにチェックを入れます。
  2. テストする文字列を貼り付けると、一致した箇所がすべて強調表示されます。隣り合う一致は色を変えて区別できるようにしています。
  3. 表には一致ごとの位置とキャプチャグループが表示されます。行をクリックすると、文字列内のその箇所が選択されます。
  4. 「置換後の文字列」を入力すると結果をプレビューできます。グループは $1、$<name>、一致全体は $& で参照します。

例:日付の形式を変える

パターン (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) は 2024-03-15 のような日付を見つけ、3 つの部分に名前を付けます。$<day>/$<month>/$<year> で置換すると次のようになります。

15/03/2024

よく使う構文

構文意味
\d数字 0-9 の 1 文字
\w英字、数字、アンダースコア
\s空白文字:スペース、タブ、改行
.改行以外の任意の 1 文字(s フラグ:すべての文字)
* + ?0 回以上、1 回以上、0 回か 1 回
{2,4}2〜4 回
^ $文字列の先頭と末尾(m フラグ:各行)
\b単語の境界
[abc] [^abc]a、b、c のどれか/それ以外の文字
a|ba または b
(...)キャプチャグループ:置換では $1、$2
(?:...)キャプチャしないグループ
(?<name>...)名前付きグループ:置換では $<name>
(?=...) (?!...)後に続く/続かない(先読み)

よくある質問

どの種類の正規表現を使っていますか?

ブラウザや Node.js と同じ JavaScript(ECMAScript)の正規表現です。構文の多くは Java、Python、PHP、Go でも使えますが違いもあります。たとえば Python の名前付きグループは (?P<name>...) と書きます。また、パターンの先頭に書く (?i) のようなフラグには対応していないので、フラグのチェックボックスを使ってください。

途中でタイムアウトになったのはなぜですか?

(a+)+$ のように繰り返しの中に繰り返しがあるパターンは、エンジンに膨大な組み合わせを試させることがあります(「破滅的なバックトラック」)。このツールはバックグラウンドで実行し、2 秒を超えると止めるので、ページは固まりません。入れ子の繰り返しを避けるようにパターンを書き直してください。同じパターンはサーバーを止めてしまうおそれもあります。

バックスラッシュは 2 つ書く必要がありますか?

ここでは不要で、\d とそのまま入力します。Java、C#、JavaScript のコードの文字列(/.../ の書き方ではないもの)に貼り付けるときは、"\\d{4}" のようにバックスラッシュを 2 つずつ書きます。

入力した文字列はサーバーに送信されますか?

いいえ。一致の検索と置換はすべてブラウザ内で行われるので、外に出せないログやデータでも安心してテストできます。