ESC

正規表現テストツール

/ / g

クイックパターン

統計

合計マッチ数 0
グループ 0
実行時間 0ms
全ての正規表現処理はブラウザ内で行われます。データはサーバーに送信されません。

0

合計マッチ数

0

グループ

0ms

実行時間

使用例

メール検証

正規表現パターンを使用してテキストからメールアドレスを検証・抽出します。

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
URL抽出

正規表現を使用して任意のテキストコンテンツからURLを検索・抽出します。

/https?:\/\/[\w\-]+(\.[\w\-]+)+/g
電話番号解析

様々な国際フォーマットの電話番号を解析・検証します。

/\+?\d{1,4}[-.\s]?\(?\d{1,3}\)?[-.\s]?\d{1,4}/g

機能

マッチハイライト

テスト文字列内の全マッチの視覚的ハイライト

正規表現フラグ

グローバル、大文字小文字無視、複数行、dotAllフラグのサポート

クイックパターン

メール、URL、電話などの一般的なケース用の事前構築パターン

グループ詳細

各マッチのキャプチャグループと名前付きグループを表示

統計

マッチ数、グループ数、実行時間のメトリクス

リアルタイムテスト

入力中に結果が自動的に更新されます

エラーハンドリング

無効な正規表現パターンに対する明確なエラーメッセージ

プライバシー

全処理がブラウザ内で完結、サーバーへのデータ送信なし

使い方

1

パターンを入力

パターン入力フィールドに正規表現パターンを入力してください。

2

フラグを設定

適切なフラグを選択:グローバル、大文字小文字無視、複数行、dotAll。

3

テスト文字列を入力

正規表現パターンに対してテストしたいテキストを貼り付けるか入力してください。

4

結果を確認

ハイライトされたマッチとグループを含む詳細なマッチ情報を確認してください。

5

クイックパターンを使用

メールやURL検証などの一般的なタスク用の事前構築パターンを試してください。

よくある質問

正規表現は、検索パターンを定義する文字のシーケンスです。パターンに一致するテキストを見つける、入力が特定の形式に準拠しているか検証する、文字列の特定の部分を抽出する、またはテキストの一部を置換する際に使用できます。例:\/\d{4}-\d{2}-\d{2}\/ は YYYY-MM-DD 形式の日付に一致し、\/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$\/ はメールアドレスを検証し、\/https?:\/\/[^\s]+\//g はテキストブロック内のすべての URL を見つけます。Regex は JavaScript, Python, PHP, Ruby, Java, Go, および事実上すべての他のプログラミング言語でネイティブにサポートされています。

g (global): 最初のものだけでなく、すべてのマッチを見つけます。g がない場合、正規表現は最初のマッチのみを返します。i (case insensitive): "hello" は "Hello", "HELLO", "hElLo" に一致します。m (multiline): ^ と $ は文字列全体ではなく、各行の開始/終了に一致します。m がない場合、^ は入力の最初のみに一致します。s (dotAll / single-line): ドット . は通常改行以外のすべての文字に一致しますが、s を付けると改行にも一致します。このツールは JavaScript ベースであるため、利用可能なフラグは JavaScript の RegExp 実装でサポートされているものです。

番号付きキャプチャグループ: パターン内の括弧 () は一致したテキストをキャプチャし、インデックス($1, $2 など)で参照できます。例えば、"2026-03-15" に対する (\d{4})-(\d{2})-(\d{2}) は、グループ 1 を年、グループ 2 を月、グループ 3 を日としてキャプチャします。名前付きキャプチャグループ: (?<name>pattern) はグループにラベルを割り当て、JavaScript で match.groups.name としてアクセス可能にします。例: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})。名前付きグループは読みやすく、パターンの他の場所にグループを追加しても壊れません。非キャプチャグループ (?:pattern) は、マッチをキャプチャせずにグループ化します。これは(a|b)のような選択肢のグループ化が必要だが、一致自体はキャプチャしたくない場合に便利です。

最も一般的な原因は以下の通りです:(1) g フラグの欠如 — g がない場合、最初のマッチのみが見つかるため、より多くのマッチを期待している場合にカウンターが 1 と表示されます。(2) エスケープされていない特殊文字 — 正規表現では . は任意の文字に一致しますが、\. はリテラルなピリオドに一致します。同様に括弧には \( \)、ブラケットには \[ \] を使用します。(3) 誤ったアンカー — m フラグがない場合、^ と $ は行ごとではなく文字列全体の開始/終了に一致します。(4) 量指定子の貪欲性 — .* は可能な限り多くの文字に一致し、キャプチャしたい部分まで取り込んでしまうことがよくあります。非貪執的なマッチには .*? を使用してください。(5) パターンが提供された入力よりも多くの入力を要求している — より単純なサブパターンで素早い動作確認を行ってください。

致命的なバックトラッキングは、入れ子になった量指定子を持つ正規表現が特定の入力に対して指数関数的な時間計算量を引き起こすときに発生します。典型的な例は "aaaaaab" に適用された (a+)+ です。エンジンは失敗する前に、入れ子のグループ間で a を分割するすべての可能な方法を試み、パターンがフリーズする原因となります。このテスターで実行して確認することも可能です。回避策:重複するパターンに対して入れ子の量指定子を避け、サポートされている場合は所有の量指定子やアトミックグループを使用し、各部分が一致する内容を具体的に記述してください。もしテスターが反応しなくなった場合、あなたのパターンにはおそらく致命的なバックトラッキングが含まれています。ページをリフレッシュしてパターンを単純化してください。

先読みと戻り見は、一致するコンテキストを含めることなく、前にあるものや後ろにあるものに基づいて位置を一致させます。肯定先読み (?=...): \w+(?=@) は @ を含まずに @ の前の単語に一致します。否定先読み (?!...): \d+(?!\.\d) は小数を伴わない数字に一致します。肯定戻り見 (?<=...): (?<=\$)\d+ は $ で始まる数字に一致します。否定戻り見 (?<!...): (?<!\d)\d+ は数字で始まらない数字に一致します。JavaScript は ES2018 以降、モダンなブラウザでの可変長の戻り見を含むこれら 4 つすべてをサポートしています。

はい。このツールは JavaScript の組み込み RegExp エンジンを使用しているため、すべてのパターンとフラグは JavaScript 特有のものです。JavaScript 仕様は Perl 互換正規表現 (PCRE) に近いですが、いくつかの違いがあります:所有の量指定子(a++ 構文)がないこと、制限された戻り見(ES2018 で可変長が追加)、および異なる Unicode 処理などです。Python の正規表現を書いている場合は、Python が文字列アンカーに ^ と $ の代わりに \A と \Z を使用すること、および生文字列 (r"pattern") が二重エスケープを回避することを注意してください。PHP (PCRE) や Java の正規表現の場合、パターンは大部分が JavaScript と互換性がありますが、デリミタやフラグの構文を確認してください。

いいえ。すべての正規表現マッチングは、JavaScript のネイティブ RegExp エンジンを使用してブラウザ内で実行されます。あなたのパターンやテスト文字列がデバイスから外に出ることはありません。

オンライン正規表現テスター&デバッガー

正規表現って毎回ググりますよね。パターンを貼り付けて、テキストを貼り付けて、マッチがリアルタイムでハイライトされるのを確認。パターンが正しいかどうか、もう推測する必要はありません。

正規表現パターンマッチング

まともなフィードバックなしに正規表現をデバッグするのは辛いです。このテスターはキャプチャグループ、マッチ位置、実行統計を表示するので、パターンが期待通りにキャプチャしない理由を正確に把握できます。

一般的なタスク用のクイック正規表現パターン

メール検証のパターンが思い出せない?URLのマッチ方法は?クイックパターンをクリックして、メール、URL、電話番号、IP、日付の一般的な正規表現をワンクリックで読み込めます。Stack Overflowに行く手間が省けます。

セキュリティとプライバシー

あなたのデータの安全を最優先しています

ローカル処理

すべての処理がブラウザ内で完結します

データ送信なし

データはサーバーに送信されません

保存しません

データは保存も共有もされません

SSL暗号化

安全な通信でご利用いただけます

次のステップ

MoreOnlineToolsでもっと見る