本文へスキップ
Case Converter Online
ja

正規表現テストツール

正規表現とテスト用のテキストを入力すると、一致した箇所が入力と同時にハイライトされます。キャプチャグループを確認し、コードに組み込む前に置換結果をプレビューできます。

フラグ

一致

0

パターンを入力すると、一致箇所が表示されます。

一致の詳細とグループ

グループは $1 や $<name>、一致全体は $& で指定します。

正規表現テスターでできること

正規表現(regex)は、テキストを検索するための小さなパターン言語です。\d{4} は「数字が4つ連続」を意味します。[\w.+-]+@ は「単語構成文字、ドット、プラス記号、ハイフンが1つ以上続き、その後に @ がある」を意味します。正規表現は、コードエディタでの検索・置換、フォームの入力チェック、ログの分析、データの整理などに使われます。

パターンは少し間違えやすいものです。テスターを使えば、スクリプトに組み込む前に実際のサンプルテキストでパターンを試し、何に一致するかを正確に確認できます。このツールは入力と同時に一致箇所を表示し、すべてのキャプチャグループを一覧にして、置換結果もプレビューします。

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

  1. 「正規表現」欄にパターンを入力します。スラッシュは不要です。ツールがスラッシュを表示し、閉じスラッシュの後に有効なフラグを表示します。
  2. g、i、m、s、u、y のボタンでフラグのオン・オフを切り替えます。
  3. 「テスト用テキスト」欄にサンプルテキストを貼り付けるか入力します。
  4. 「一致」欄で結果を確認します。一致した箇所はハイライトされ、カウンターに見つかった数が表示されます。
  5. 「一致の詳細とグループ」で、各一致の位置と、各グループが捉えたテキストを確認します。
  6. 検索と置換を試すには、「置換文字列」欄に入力します。変更後のテキストが「結果」欄に表示され、そのままコピーできます。

どこから始めればよいかわからない場合は、「よく使うパターン」から選んでください。メールアドレス、Webアドレス、日付、IPv4 アドレス、16進数のカラーコード、電話番号、数値、連続した2つのスペースのパターンがあります。

フラグ

フラグ 名前 変わること
g global 最初の一致だけでなく、すべての一致を見つけます
i ignore case hello が Hello や HELLO にも一致します
m multiline ^ と $ が各行の先頭と末尾に一致します
s dot all . が改行にも一致します
u unicode 絵文字を1文字として扱い、\p{...} クラスが使えるようになります
y sticky 各一致は、直前の一致が終わった位置からちょうど始まる必要があります

日本語を扱うときは u フラグが役立ちます。JavaScript の \w は英数字とアンダースコアにしか一致せず、ひらがなや漢字には一致しません。日本語の文字を指定したい場合は、u フラグをオンにして \p{Script=Hiragana}、\p{Script=Katakana}、\p{Script=Han} などを使ってください。たとえば ひらがなとカタカナ ABC に \p{Script=Hiragana}+(フラグ gu)を使うと、一致するのは ひらがなと です。

使用例

以下は、このツールでパターンを実行した結果です。

パターン フラグ テキスト 一致
\d+ なし a1 b22 c333 1
\d+ g a1 b22 c333 1、22、333
hello gi Hello hello HELLO Hello、hello、HELLO
^\w+ gm 2行:one two と three four one、three
a.b g a、改行、b 一致なし
a.b gs a、改行、b 1件一致

ページを開くと、日付の例が読み込まれます。パターン (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) は、サンプルテキストから 2026-10-31、2024-01-15、2026-11-02 の3つの日付を見つけます。置換文字列 $<day>/$<month>/$<year> を使うと、最初の日付は 31/10/2026 になります。

置換は、テキストの整理にも便利です。パターン \s{2,} と、置換文字列に半角スペース1つを指定すると、too many spaces は too many spaces になります。なお JavaScript の \s は全角スペースにも一致するため、このパターンは全角スペースが混じった連続空白もまとめて置き換えます。

仕組み

テスターは、入力されたパターンとフラグから JavaScript の RegExp を作り、テスト用テキストに対して実行します。g フラグがあれば、最後まで検索を続けます。空文字列の一致は1文字進めて処理するので、x* のようなパターンで無限ループになることはありません。

テキストはハイライトの前にエスケープされます。サンプルテキストに HTML やスクリプトが含まれていても、ただの文字として表示され、実行されることはありません。

マッチングは、バックグラウンドのスレッドである Web Worker で行われます。パターンの処理が1秒を超えると、そのワーカーを停止して新しいワーカーを起動します。タブが固まる代わりに、メッセージが表示されます。

パターンが無効な場合は、ブラウザのエラーメッセージが表示されます。たとえば ( だけを入力すると、「Unterminated group」(グループが閉じられていない)というエラーになります。

ヒントと制限

  • 繰り返しの入れ子に注意しましょう。 (a+)+$ や (\w+\s?)*$ のようなパターンは、ほぼ一致するテキストに対して膨大な時間がかかることがあります。これを壊滅的なバックトラックと呼びます。各部分が具体的なものに一致するようにし、繰り返しの中に繰り返しを入れないようにしてください。
  • 特殊文字はエスケープしましょう。 ドットそのものに一致させるには \. と書きます。? * + ( ) [ ] { } ^ $ | とバックスラッシュ自体も同様です。
  • 入力チェック用のパターンにはアンカーを付けましょう。 フォームの入力欄に使う場合は、パターンを ^ と $ で囲み、値の一部ではなく全体が一致するようにします。
  • 正規表現は完全なパーサーではありません。 テキストからメールアドレスや日付を見つけるのには十分ですが、HTML の解析や、メールアドレスが実在するかの確認には向いていません。
  • 非常に多い結果には上限があります。 一致は最大5,000件まで一覧表示し、詳細の表には最初の300行を表示します。

そのほかの正規表現のテスト方法

コマンドラインでは、grep -oE で各一致を1行ずつ表示できます。

echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'

これで 2026-10-31 と表示されます。Python では、re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') が ['2026-10-31', '2024-01-15'] を返します。JavaScript では、text.match(/pattern/g) を使うか、グループが必要なら text.matchAll() を使います。

関連ツール

Webアドレス用にタイトルを整えるには、スラッグ生成ツールを使ってください。リンクの中で安全に使えるようにテキストを変換するには、URLエンコード・デコードを使ってください。

正規表現テスターのよくある質問

このテスターはどの正規表現エンジンを使っていますか?

ブラウザに組み込まれた JavaScript のエンジンを使っています。そのため、結果は JavaScript や Node.js の RegExp と同じになります。単純なパターンなら Python、PHP、Java でもほぼ同じように動きますが、後読み、名前付きグループ、Unicode クラスなどの機能は言語によって少し異なる場合があります。

一致が1つしか表示されないのはなぜですか?

g フラグがオフになっています。g フラグがないと、JavaScript の正規表現は最初の一致で止まります。g ボタンを押すと、テスト用テキスト内のすべての一致を見つけられます。

「1秒で停止しました」と表示されるのはどういう意味ですか?

パターンの処理に時間がかかりすぎています。たいていは、壊滅的なバックトラックが原因です。(a+)+ や (.*)* のような繰り返しの入れ子があると、エンジンが膨大な数の経路を試すことになります。テスターはマッチングをバックグラウンドのワーカーで実行し、時間がかかりすぎたら停止するので、ページが固まることはありません。繰り返しの部分をより具体的にして、もう一度試してください。

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

番号付きグループは $1、$2 のように、名前付きグループは $<name> と書きます。一致全体は $& です。たとえば、パターン (\w+)@(\w+) と置換文字列 $2 at $1 を使うと、a@b c@d は b at a d at c になります。

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

いいえ。マッチングはブラウザの中で行われます。入力した内容がアップロードされたり保存されたりすることはありません。

その他のコード・データツール

すべてのツールを見る