Regexテスター:マッチ付きパターンテスト
無料、登録不要。Regexテスター:ライブマッチハイライト、キャプチャグループ表示、全regexフラグサポートで正規表現をデバッグ。
Regexテスターとは?
Regexテスターは、リアルタイムフィードバック付きで正規表現を書き、テストし、デバッグするための無料のブラウザベースツールです。regex開発の根本的な問題を解決します:実際のテキストに対してテストするまで、パターンが正しいかどうかわかりません。そして多くの環境では編集・実行・確認のサイクルが遅くて断片的です。
パターンを入力すると即座に評価されます。マッチがテスト文字列に直接ハイライトされ、キャプチャグループが抽出・ラベル付けされ、各マッチの文字位置が報告され、置換モードでプロダクションコードに組み込む前に代替結果をプレビューできます。JavaScriptの6つのregexフラグすべてをサポート。カテゴリ別に整理された49個のプリセットパターンライブラリが一般的なバリデーションニーズに対応。すべてブラウザで動作し、パターンとテストデータは一切送信されません。
主な機能
- 入力中のライブマッチング: JavaScriptのネイティブ
RegExpエンジンでキーストロークごとにマッチを再計算。ボタンを押さずに結果パネルが更新されます。 - 全JavaScriptフラグ(g, i, m, s, u, y): 各フラグはラベル付きチェックボックス:global、case-insensitive、multiline、dotAll、unicode、sticky。アクティブなフラグがパターン入力フィールドの横にライブ表示され、JavaScriptソースコードの
/パターン/フラグ記法を反映します。 - テスト文字列のマッチハイライト: ハイライトされたマッチパネルがテスト文字列を表示し、各マッチをプライマリカラーの背景スタイルの
<mark>要素で囲みます。マッチしないテキストはスタイルなしで表示。パネルはライブマッチカウントを表示します。 - キャプチャグループ抽出: マッチがある場合にマッチ詳細パネルが表示されます。各マッチエントリは、完全なマッチテキスト、開始・終了文字位置、キャプチャグループのラベル付きリスト(
$1、$2等)を表示。内容のないグループは「空」とラベル付けされます。 - マッチカウントと位置: 詳細パネルの各マッチエントリは正確な
indexとindex + match.lengthを表示し、JavaScriptのRegExpExecArrayのindexプロパティと直接対応します。 - 置換モードと代替: 切り替え可能な置換セクションが置換文字列を受け取り、完全な代替結果を表示。後方参照(
$1、$2)をサポート。結果をクリップボードにコピーできます。 - 一般的なregexパターンライブラリ: 8カテゴリ49個の検索可能なパターンライブラリ:バリデーション、日付と時刻、数値、ウェブとネットワーク、ファイルとパス、コード、テキスト、識別子。「Use Pattern」をクリックするとパターン入力フィールドにロードされます。
Regexテスターの使い方
ステップ1:パターンを入力
パターン入力フィールドに正規表現を入力します。フィールドの両側に/デリミタが表示され、regex形式を視覚的に示します。入力するのはパターン本体のみ — スラッシュは含めません。
パターンに構文エラーがある場合(未閉じのグループや無効なエスケープシーケンスなど)、パターン入力フィールドの下に即座に赤いエラーメッセージが表示され、JavaScriptのRegExpコンストラクタからの正確なエラーテキストが示されます。壊れたパターンは実行できませんが、エラーメッセージが何が問題かを正確に特定します。
ステップ2:フラグを設定
パターン入力フィールドの下に6つのフラグチェックボックスがあります。デフォルトではg(グローバル)フラグが有効です。チェックボックスをクリックしてフラグを切り替えます:
g(グローバル):最初だけでなくすべてのマッチを検索i(大文字小文字を区別しない):大文字と小文字を同等に扱うm(マルチライン):^と$を文字列全体の先頭末尾ではなく各行の先頭末尾でマッチs(dotAll):.が他のすべての文字に加えて改行文字にもマッチu(unicode):完全なUnicodeサポートを有効化。\p{}Unicodeプロパティエスケープを使うパターンに必要y(sticky):先を検索せず文字列の現在位置(lastIndex)のみでマッチ
アクティブなフラグ文字列がパターンフィールドの横にライブ表示されるため、globalとcase-insensitiveの両方がチェックされていればgiと表示されます。
ステップ3:テスト文字列を入力
テスト文字列パネルにマッチさせたいテキストを貼り付けるか入力します。テスト文字列の文字数がパネルヘッダーに表示されます。テキストエリアは複数行入力に対応し、垂直方向にリサイズします。
ステップ4:マッチ結果を確認
右側のハイライトされたマッチパネルが即座に更新されます。パターンにマッチしたテスト文字列の各部分がハイライトされます。パネルヘッダーに総マッチ数が表示されます。
2つのメインパネルの下に、各マッチを個別に一覧するマッチ詳細セクションが表示されます:
- マッチ番号(1から開始)
- マッチしたテキスト(ハイライトされたコードブロックで表示)
- 文字位置:開始インデックスと終了インデックス
- キャプチャグループ(
$1、$2等とラベル付け)
ステップ5:置換モードを使用する(オプション)
「Show Replace」ボタンをクリックして置換セクションを開きます。Replace Withフィールドに置換文字列を入力します。後方参照が機能します:$1は最初のキャプチャグループの内容を挿入し、$2は2番目、以下同様。結果パネルが即座に更新され、完全な代替結果を表示します。コピーアイコンをクリックして結果をコピーします。
ステップ6:パターンライブラリを使用する(オプション)
「Pattern Library」ボタンをクリックして検索可能なパターンパネルを開きます。検索ボックスに入力して名前、説明、カテゴリでフィルタリングします。エントリの横にある「Use Pattern」をクリックしてパターンフィールドに直接ロードします。選択後ライブラリは自動的に閉じます。
実用的な例
例1:メールアドレスのバリデーション
パターン:^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$
フラグ:g
テスト文字列:
user@example.com
invalid-email
another@test.co.uk
@missing-local.com
結果:2つのマッチ — user@example.comとanother@test.co.ukがハイライトされます。他の2行はマッチしません。
例2:ログ行からキャプチャグループを抽出
パターン:(\d{4}-\d{2}-\d{2}) (\w+): (.+)
フラグ:gm
テスト文字列:
2026-02-28 ERROR: Connection timeout after 30s
2026-02-27 INFO: Server started on port 3000
マッチ1の詳細:
- 完全なマッチ:
2026-02-28 ERROR: Connection timeout after 30s $1:2026-02-28$2:ERROR$3:Connection timeout after 30s
例3:キャプチャグループの後方参照による置換
パターン:(\w+)\s(\w+) 置換文字列:$2, $1 テスト文字列:John Smith 結果:Smith, John
$1と$2を使って2つのキャプチャされた単語グループの順序を入れ替える置換モードのデモです。
ヒントとベストプラクティス
包括的なテストのためにグローバルフラグを有効にする。 gがオフの場合、マッチングは最初の結果で停止します。開発中は通常gを有効にして、テスト文字列内のすべての潜在的なマッチを確認し、予期しない追加マッチがないか検証します。
パターンで^や$を使う場合はm(マルチライン)フラグを使用。 mがない場合、^は入力文字列全体の先頭のみ、$は末尾のみにマッチします。mがあると、各行の先頭と末尾でマッチし、複数行入力を処理するときに通常必要なものです。
ゼロ長マッチ保護が組み込み済み。 グローバルフラグがアクティブな場合、マッチングループはゼロ長マッチをチェックし、無限ループを防ぐためにlastIndexをインクリメントします。つまりa*や\bのようなパターンはブラウザをフリーズさせません。
/パターン/フラグ記法でパターンをコピー。 Copy PatternボタンはJavaScript記法でクリップボードに完全なパターンを書き込みます。スラッシュとアクティブフラグを含みます — 例:/\d{4}-\d{2}-\d{2}/gm。JavaScriptソースコードに直接貼り付けられます。
パターンをスニペットに保存。 Save to Snippetsボタン(Copy Patternの横に表示)は現在のパターンを /パターン/フラグ形式でGlyph WidgetsのSupporter機能で利用可能なスニペットライブラリに保存します。セッション履歴だけに依存するより永続的です。
よくある問題とトラブルシューティング
パターンが赤いエラーメッセージを表示。 エラーテキストはJavaScriptのRegExpコンストラクタから直接来て、何が問題かを説明します。よくあるエラーにはInvalid regular expression: missing )(未閉じのキャプチャグループ)とInvalid escape(uフラグなしで有効なエスケープシーケンスでない文字に続くバックスラッシュ)が含まれます。エラーメッセージを文字通り読んでください — 問題を特定しています。
期待されるマッチがハイライトされない。 大文字小文字を区別しないマッチにiフラグが必要か、複数行入力で^や$を使うパターンにmフラグが必要かを確認します。パターンが過度にアンカーされていないかも確認してください — ^\d+$は数字のみを含む行にのみマッチし、他のテキストに埋め込まれた数字にはマッチしません。
キャプチャグループが「空」と表示。 キャプチャグループは、グループがマッチに参加しているがサブパターンがゼロ文字にマッチした場合、またはオプショナルグループ((...)?)が参加しなかった場合に「空」になります。これはパターンにグループがない場合とは異なります。
置換が後方参照を使用しない。 置換文字列の後方参照は$1、$2、$n構文を使用します。\1や%1は動作しません — JavaScriptのString.prototype.replaceでは無効です。名前付きグループは$<名前>構文を使用します。
ライブラリからパターンをロードしてもマッチしない。 ライブラリのパターンには^と$アンカーを含むものがあり、大きなテスト文字列内のサブストリングマッチングではなく、文字列全体のバリデーション用に設計されています。段落内でパターンを検索する場合は、アンカーを削除するか、mなしでgを追加してコアパターンがマッチするか確認してください。
プライバシーとセキュリティ
RegexテスターでのすべてのregexEvaluation(評価)は、JavaScriptのネイティブRegExpエンジンを使ってブラウザで実行されます。パターン、テスト文字列、マッチ結果はいかなるサーバーにも送信されません。共有可能なURL機能はパターンとテスト文字列をURL自体にエンコードします(クライアントサイドのみ)。リンクを共有してもサーバーへのラウンドトリップは発生しません。ツールは最初のページロード後オフラインで動作します。
よくある質問
Regexテスターは無料ですか? はい、アカウントなし、サインアップなし、使用制限なしで完全に無料です。
データは安全ですか? パターンとテスト文字列はブラウザから外に出ることはありません。すべてのマッチングはJavaScriptの組み込みRegExpを使ってローカルで実行されます。マッチングプロセスに関与するサーバーサイドコンポーネントはありません。
オフラインで使用できますか? はい。ページが一度ロードされると、ツール全体がインターネット接続なしで動作します。パターンライブラリ、マッチングエンジン、置換モードはすべてローカルで実行されます。
どのregex方言を使用しますか? JavaScriptのネイティブRegExpエンジンを使用し、ECMAScript正規表現仕様を実装しています。lookaheads、lookbehinds(モダンJSで)、キャプチャグループ、非キャプチャグループ、後方参照、Unicodeプロパティエスケープ(uフラグで)を含む一般的なregex構文をサポートしています。
lookaheadsとlookbehindsをサポートしますか? はい。肯定的lookahead (?=...)、否定的lookahead (?!...)、肯定的lookbehind (?<=...)、否定的lookbehind (?<!...)はすべてここで使用するJavaScriptエンジンでサポートされています。ECMAScript 2018仕様の一部であり、すべてのモダンブラウザでサポートされています。
パターンを誰かと共有できますか? はい。パターン、テスト文字列、フラグをURLにエンコードする共有可能な状態を使用しています。ブラウザのアドレスバーからURLをコピーして共有してください。受取人がリンクを開くと、共有URLから状態がロードされたことをトースト通知で知らせます。
パターンライブラリには何個のパターンがありますか? 8カテゴリに整理された49個のパターン:バリデーション(メール、URL、電話、UUID、パスワードを含む10個)、日付と時刻(5個)、数値(5個)、ウェブとネットワーク(6個)、ファイルとパス(5個)、コード(6個)、テキスト(7個)、識別子(クレジットカード、SSN、IBAN、ISBN-13、IMEIを含む5個)。
s(dotAll)とm(マルチライン)フラグの違いは何ですか? 異なるものに影響します。sフラグは.が他のすべての文字に加えて改行にもマッチするようにします。なしでは.は改行文字をスキップします。mフラグは^と$が文字列全体ではなく各行の先頭と末尾でマッチするようにします。独立しています — どちらか一方、両方、または両方とも無効にできます。
\p{Letter}のようなUnicodeプロパティエスケープを使用できますか? はい、ただしuフラグを有効にする必要があります。uがアクティブな場合、\p{Lu}(大文字)や\p{Script=Latin}のようなパターンはモダンブラウザでサポートされます。uなしでは\pシーケンスはリテラルのpとして扱われます。
複数行にまたがってマッチするには? s(dotAll)フラグを有効にして.が改行にマッチするようにし、[\s\S]*?またはsがアクティブな.+を使用します。^と$が行の先頭と末尾にアンカーする必要がある場合はmも有効にします。
関連ツール
- JSON Formatter — regexテスト文字列用にJSONをフォーマット
- Base64 Encoder/Decoder — regexを適用するテキストをエンコード/デコード
- Diff Checker — オリジナルと置換後のテキストを並べて比較
今すぐRegexテスターを試す:Regexテスター