正規表現テスター
正規表現パターンをテキストに対して試し、マッチ箇所をハイライトしてキャプチャグループも確認できます。名前付きグループは名前ごとに内容を表示し、$1 や $<名前> を使った置換の結果も確かめられます。
マッチ数: 0
使い方
- 「パターン」に正規表現を入力します。前後の
/や引用符は付けません - 「フラグ」に
g、i、m、s、uなどを続けて入力します。最初はgが入っています - 「対象テキスト」に、マッチさせたい文字列を貼り付けます
- マッチした箇所が黄色でハイライトされ、その下にマッチ数と一覧が表示されます
- 置換を確かめたいときは「置換も試す」にチェックを入れ、「置換後の文字列」を入力します。置き換えた後の文章が「置換結果」に表示されます
実行ボタンはなく、欄のどれかを書き換えるたびに結果が更新されます。更新を待っている間は、直前の結果が薄く表示されます。パターンが空のときは、対象テキストがハイライトなしで表示され、マッチ数は0です。
具体例
パターンに \d+、フラグに g、対象テキストに次の文を入力します。
注文番号は12件、合計450円です
12 と 450 がハイライトされ、マッチ数は2、一覧は次のようになります。
#1 @5: "12"
#2 @11: "450"
# のあとは何番目のマッチか、@ のあとはマッチが始まる位置です。位置は先頭を0として数えます。絵文字のようにJavaScriptの内部で2単位を使う文字は、2つ分進みます。
かっこでグループを作ると、グループごとの内容も表示されます。パターン (\d{4})-(\d{2})-(\d{2}) を 開始 2026-10-11、終了 2026-12-01 に試した結果は次のとおりです。
#1 @3: "2026-10-11" グループ: ["2026","10","11"]
#2 @17: "2026-12-01" グループ: ["2026","12","01"]
名前付きグループ (?<名前>…) を使うと、かっこの順の一覧のあとに、名前ごとの内容も表示されます。パターン (?<year>\d{4})-(?<month>\d{2})-(\d{2}) を同じ文に試した結果は次のとおりです。名前のない3つ目のグループは「グループ」の側にだけ出ます。
#1 @3: "2026-10-11" グループ: ["2026","10","11"] 名前付き: {year: "2026", month: "10"}
#2 @17: "2026-12-01" グループ: ["2026","12","01"] 名前付き: {year: "2026", month: "12"}
置換を試す
「置換も試す」にチェックを入れると、マッチした部分を「置換後の文字列」に置き換えた文章が「置換結果」に表示されます。置き換えた部分はハイライトされ、置換した箇所の数も表示されます。「置換結果をコピー」で、置き換えた後の文章をコピーできます。
パターン (\d{4})-(\d{2})-(\d{2})、対象テキスト 開始 2026-10-11、終了 2026-12-01 で、置換後の文字列に $1年$2月$3日 を入力すると、置換結果は次のようになります。置換した箇所は2か所です。
開始 2026年10月11日、終了 2026年12月01日
置換後の文字列には、次の書き方でマッチの内容を入れられます。
$1〜$99: かっこの順で数えたグループの内容。マッチに使われなかったグループは空の文字列になります$<名前>: 名前付きグループの内容。パターンに名前付きグループがないときは、$<がそのまま文字として残ります$&: マッチした文字列全体$`: マッチより前の部分すべて$': マッチより後の部分すべて$$:$という1文字
置換後の文字列を空欄のままにすると、マッチした部分を削除した結果になります。たとえばパターン \s+ では、空白をすべて取り除いた文章になります。
置換結果は、JavaScriptで 対象テキスト.replace(new RegExp(パターン, フラグ), 置換後の文字列) を実行した結果と同じです。そのため、マッチの一覧とは違い、フラグに g がないと最初の1件だけを置き換えます。このときは置換結果の上に、そのことが表示されます。長い文章を、大文字と小文字の区別などの設定を選んでまとめて置き換えるには、「テキスト置換ツール(検索と置換)」も使えます。
フラグによる違い
フラグは、ブラウザのJavaScriptが対応しているものを指定できます。同じパターンでも、フラグによって結果が変わります。
i(大文字と小文字を区別しない):appleをApple apple APPLEに試すと、gだけでは1件、giでは3件ですm(行ごとに^と$を判定する):^\w+を2行の文one twoとthree fourに試すと、gではoneの1件、gmではoneとthreeの2件ですs(.を改行にもマッチさせる):a.bは、aとbの間に改行がある文字列にgではマッチせず、gsでマッチしますu(Unicodeの文字単位で扱う):.を絵文字😀に試すと、gでは2件、guでは1件です。\p{Script=Hiragana}+のような指定もuが必要で、guなら東京のそらからのそらを取り出せますy(直前のマッチの続きからだけ探す):\dを12a3に試すと、1と2の2件で止まります
このアプリは、すべてのマッチを一覧にするため、フラグに g がなくても内部で g を付けて実行します。マッチの一覧では「最初の1件だけ」の動作は再現できません(置換結果は、g がなければ最初の1件だけを置き換えます)。フラグの選び方は、ガイド「JavaScript正規表現フラグの使い分け」にまとめています。
よくあるつまずき
.+はできるだけ長くマッチします。<.+>を<b>太字</b>に試すと全体が1件になります。タグを1つずつ取り出すには、<.+?>のように?を付けて最短のマッチにします- パターンを
/\d+/のようにスラッシュで囲むと、スラッシュも文字として探します。囲まずに\d+と入力してください uを付けずに\p{L}と書くと、Unicodeの文字種の指定にならず、p{L}という文字の並びを探します\bやx*のように長さ0でマッチするパターンは、マッチ数には数えられ、一覧に""と表示されますが、ハイライトされる文字はありません。詳しくはガイド「正規表現のゼロ幅一致を安全にテストする方法」を参照してください- グループのうちマッチに使われなかったものは
nullと表示されます。(a)|(b)をabに試すと、1件目のグループは["a",null]です - 名前付きグループもかっこの順に数えられるので、「グループ」と「名前付き」の両方に出ます。名前付きグループのうちマッチに使われなかったものは、名前を残して
nullと表示されます。(?<letter>[a-z])|(?<digit>\d)をa1に試すと、1件目は{letter: "a", digit: null}です
制限と仕様
- 正規表現の方言はJavaScriptです。PCRE、Python、Javaなどに固有の構文は、エラーになるか、別の意味で解釈されます。使える構文は、お使いのブラウザのバージョンにも左右されます
- 表示するマッチは最大1000件です。それより多い場合はマッチ数が
1000+と表示され、1001件目以降はハイライトされません - 入力が止まってから0.15秒後に、ページの表示とは別のバックグラウンド処理(Web Worker)でマッチを実行します。1秒以内に終わらない場合は処理を打ち切り、結果を表示しません。Web Workerを使えないブラウザではページ側で実行するため、この打ち切りは働きません
- 置換は、表示している最大1000件のマッチに対して行います。それより多い場合、1001件目以降のマッチは元のまま残り、置換結果の上にそのことが表示されます
- 置換結果が100万文字を超える場合は、置換結果を表示しません。
$`や$'を多くのマッチで使うと、結果が急に長くなります - 置換後の文字列に
$1などの参照がとても多く、マッチも多い場合(参照の数とマッチの数を掛けておよそ500万を超える場合)も、入力のたびに処理が重くならないよう、置換結果を表示しません replaceの第2引数に関数を渡す書き方は試せません。置換後の文字列は、上の$の書き方を含む文字列として扱います- パターンも対象テキストも、ブラウザの
RegExpで処理するだけで、外部へ送信しません。ログや顧客データの一部を貼り付けて試す用途にも使えます
FAQ
無効な正規表現を入力するとどうなりますか?
かっこの閉じ忘れなどでパターンが不正な場合や、存在しないフラグ、同じフラグの重複を指定した場合は、ブラウザが返すエラーメッセージ(英語)が表示されます。u と v を同時に指定した場合もエラーです。
後方参照や名前付きキャプチャグループは使えますか?
はい。(\w)\1 を aabbcd に試すと、aa と bb がマッチします。名前付きグループは、名前での後方参照 \k<名前> も使えます。(?<q>["'])\w+\k<q> を "a" 'b' "c' に試すと、同じ引用符で閉じた "a" と 'b' の2件がマッチし、一覧の「名前付き」に {q: "\""} と {q: "'"} が表示されます。JavaScriptの RegExp が対応する構文であれば利用できます。
フラグを空にするとどうなりますか?
g を指定したときと同じく、すべてのマッチが表示されます。内部で g を付けて実行するためです。ただし置換結果は、JavaScriptの replace と同じく、最初の1件だけを置き換えたものになります。
置換結果に $1 がそのまま残るのはなぜですか?
パターンに1つ目のグループがないためです。$ のあとの数字は、その番号のグループがあるときだけ置き換えられます。\d+ のようにかっこのないパターンでは、$1 は文字として残ります。マッチ全体を入れるときは $& を使います。また、グループが9個以下のときの $10 は、$1 のあとに 0 を続けたものとして扱われます。
マッチ数に上限はありますか?
1回の実行で表示するのは1000件までです。上限に達して打ち切った場合は、マッチ数の末尾に + が付きます。
「1秒以内に処理が終わらなかったため中断しました」と表示されるのはなぜですか?
(a+)+$ のように繰り返しが入れ子になったパターンは、マッチしない文字列に対して試す組み合わせが爆発的に増えること(破滅的バックトラック)があります。たとえば a が長く続いたあとに ! が付く文字列が該当します。Web Workerを使えるブラウザでは、このアプリは1秒を超えた処理を打ち切るため、入力欄はそのまま操作できます。a+$ のように入れ子の繰り返しをなくす、対象テキストを短くするなどして見直してください。
PythonやPHPで使う正規表現もテストできますか?
共通する基本的な構文であれば、動作の確認に使えます。ただし、実行しているのはJavaScriptの正規表現です。言語ごとに違いがあるため、最終的な確認は実際に使う言語で行ってください。
- 種別
- ユーティリティ
- カテゴリ
- 開発者向け
- タグ
- regex
- regexp
- pattern
- test
- replace
- developer
このアプリに関連するガイド
JavaScript正規表現フラグの使い分け
g、i、m、s、u、yの役割と組み合わせを具体例で比較し、複数一致、状態、改行、Unicodeの結果を確認します。
開発者向けregexjavascriptflagsunicodepattern-testing正規表現のゼロ幅一致を安全にテストする方法
先読み、行頭・行末、単語境界など、文字を消費しない正規表現の一致位置と繰り返し処理を理解します。
開発者向けregexzero-widthjavascript
関連アプリ

カラーコード変換ツール
HEX・RGB・HSL のカラーコードを相互に変換し、HSV・CMYK・OKLCH の表記も表示。カラーピッカーやプレビューで確認でき、白・黒や指定した文字色とのコントラスト比(WCAG)も分かります。

XML整形・圧縮ツール
1行につながったXMLを、字下げをつけた読みやすい形に整形します。字下げはスペース2つ・4つ・タブから選べ、1行に圧縮することもできます。タグの閉じ忘れなどの誤りは、行と位置を示します。XPathの式で要素や属性を抜き出すこともできます。ブラウザ内で完結。

chmod計算ツール(パーミッション変換)
Linux・macOS のファイルのパーミッションを、755 のような数値と rwxr-xr-x のような記号のあいだで変換します。r・w・x のマスを押して読み取り・書き込み・実行を選ぶと、chmod コマンドがその場でできあがります。setuid・setgid・スティッキービットにも対応し、umask から新しいファイルとディレクトリの権限も出せます。


