正規表現テスターの使い方 🚀 ツールを使う
無料 登録不要 i・m・sフラグ対応 グループキャプチャ

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

正規表現パターンとテキストを入力するだけで、マッチした箇所・グループ・文字位置を即座に確認できます。i(大文字小文字無視)・m(複数行)・s(単一行)フラグに対応し、複雑な条件のマッチングも簡単に検証できます。Python の re モジュールを利用しているため、先読み・後読みアサーションや名前付きグループなど高度な機能も使用可能です。メールアドレス・電話番号・URL など実用的なパターンをそのまま試せるパターン集も掲載しています。

🚀 今すぐテストする →

📌 このツールでできること

  • 正規表現パターンをテキストに対して即座にテスト
  • マッチした全箇所を一覧表示(マッチ文字列・開始位置・終了位置)
  • キャプチャグループ(括弧)の内容を番号順に確認
  • 名前付きグループ((?P<name>...))の内容を確認
  • i(大文字小文字無視)・m(複数行)・s(単一行ドット)フラグに対応
  • 先読み((?=...))・後読み((?<=...))アサーションの動作確認
  • 量詞(*, +, ?, {n,m})の貪欲・非貪欲マッチのテスト
  • マッチ件数をカウント表示
  • パターンエラー(構文誤り)を即座にフィードバック

🚀 使い方

  1. 正規表現パターンを入力

    「正規表現パターン」欄にテストしたいパターンを入力します。例:(\d{4})-(\d{2})-(\d{2})

  2. フラグを設定(任意)

    「フラグ」欄に使用するフラグを入力します。i(大文字小文字無視)、m(複数行モード)、s(単一行モード)を組み合わせ可能です。

  3. テストテキストを入力

    「テストテキスト」欄にマッチングしたいテキストを入力します。

  4. 「テスト実行」をクリック

    マッチ結果が表示されます。各マッチの文字列・開始位置・終了位置・グループが確認できます。


📊 活用例

日付・時刻の抽出

ログファイルやテキストから日付・時刻を抽出する際に役立ちます。(\d{4})-(\d{2})-(\d{2}) パターンで年・月・日をキャプチャグループで個別に取得できます。サーバーログの解析やデータクレンジング作業を大幅に効率化できます。

フォームバリデーションの開発

メールアドレス・電話番号・郵便番号などの入力値検証パターンを実装前に本ツールで十分テストできます。[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} のようなパターンをサンプルデータで動作確認してから実装に組み込むことで、バグの少ないバリデーションを作成できます。複数のテストケースを一度に確認できるため開発効率が高まります。

ログ解析・データクレンジング

アクセスログ・エラーログから特定の IP アドレスやエラーパターンを抽出したい場合に活用できます。複数行テキストに対して m フラグを使用することで行単位のマッチングが可能になります。抽出したデータを集計・可視化するための前処理として正規表現は欠かせません。

テキスト置換パターンの検証

HTML タグの除去(<[^>]+>)や不要な空白の削除(\s+)など、置換操作のパターンを本ツールで事前検証できます。置換前後の文字列を確認してから実装することで、意図しないデータ破損を防げます。grep / sed / Python スクリプトへ移植する前の動作確認としても最適です。


📋 よく使うパターン集

コピーしてそのまま使える、実務でよく登場するパターンをまとめました。

用途パターン例
日付(YYYY-MM-DD)\d{4}-\d{2}-\d{2}
メールアドレス[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
電話番号(日本)0\d{1,4}-\d{1,4}-\d{4}
郵便番号\d{3}-\d{4}
URLの抽出https?://[\w/:%#\$&\?\(\)~\.=\+\-]+
IPアドレス\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
半角英数字のみ^[a-zA-Z0-9]+$
空行の削除^\s*$(複数行モード m と組み合わせ)
HTMLタグ除去<[^>]+>
クレジットカード番号(簡易)\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}

🔬 技術的背景 / 仕組み

Python の re モジュールについて

本ツールはサーバーサイドで Python 標準ライブラリの re モジュールを使用しています。re.finditer() を呼び出すことで、テキスト内のすべてのマッチを順番に取得し、マッチ文字列・開始位置・終了位置・グループを返します。Python の正規表現エンジンは NFA(非決定性有限オートマトン)ベースであり、バックトラッキングを行います。

正規表現の主な構文要素

正規表現にはいくつかの重要な構文カテゴリがあります。量詞*+?{n,m})は繰り返し回数を指定します。デフォルトは「貪欲マッチ」(できるだけ多くマッチ)で、? を付けると「非貪欲マッチ」になります。文字クラス[a-z]\d\w\s)は特定の文字集合を表します。アンカー^$\b)は位置を指定します。

先読み・後読みアサーション

アサーションは文字を消費せずに位置条件を指定します。先読み(?=...))は「直後にパターンが続く位置」にマッチし、後読み(?<=...))は「直前にパターンがある位置」にマッチします。否定版は (?!...)(?<!...) です。例:(?<=\$)\d+ は「$ の後に続く数値」だけを抽出します。

JavaScript / PCRE との違い

Python の re は PCRE(Perl Compatible Regular Expressions)と概ね互換性がありますが、いくつかの差異があります。Python では文字列境界に \A(文字列先頭)と \Z(文字列末尾)が使えます。名前付きグループは Python 式((?P<name>...))で、PCRE 式((?<name>...))も使用可能です。JavaScript の d フラグ(インデックス取得)や v フラグには非対応です。


📚 関連書籍 PR

※ 本リンクはアフィリエイト広告を含みます。


❓ よくある質問

グローバルマッチ(g フラグ)はありますか?

本ツールでは常に全マッチを検索します(Python の finditer 相当)。gフラグを指定する必要はありません。

名前付きグループ((?P<name>...))は使えますか?

Python正規表現の名前付きグループ構文も使用できます。ただし、グループ内容はインデックス順で表示されます。

JavaScriptやPCREの正規表現と違いはありますか?

本ツールはPythonのreモジュールを使用しています。一部の記法(例:\A, \Z, 先読み・後読みなど)はPython固有です。JavaScriptやPCREとは一部異なる場合があります。

フラグ(i / m / s)はどう指定しますか?

「フラグ」欄に使用したいフラグの文字を入力してください。例えば大文字小文字を無視して複数行モードも有効にしたい場合は im と入力します。i(大文字小文字無視)・m^$ が各行の先頭・末尾にマッチ)・s. が改行文字にもマッチ)の組み合わせが可能です。

先読み・後読みアサーションは使えますか?

使えます。Python の re モジュールは先読み((?=...)(?!...))と後読み((?<=...)(?<!...))の両方をサポートしています。例えば \d+(?= 円) は「円」の前にある数値だけを抽出します。

パフォーマンスに問題がある正規表現とは?

「壊滅的なバックトラッキング」を引き起こすパターンは、入力サイズが大きいと処理時間が指数関数的に増加します。代表的なパターンは (a+)+(a*)* のように量詞がネストされているものです。入力が長い場合や本番環境で使用するパターンは、事前に十分なテストを行ってください。


🔗 関連ツール