正規表現テスター
正規表現パターンをリアルタイムでテスト・検証できる無料ツール。マッチ結果ハイライト表示、グループキャプチャ抽出、フラグ(g,i,m,s,u,y)選択対応。プログラミング・データ検証に便利な正規表現チェッカー。
正規表現パターンを入力してください(スラッシュは不要)
使い方のヒント
- • 正規表現パターンとテストテキストを入力すると、リアルタイムでマッチ結果が表示されます
- • マッチした部分は黄色でハイライト表示されます
- • グループキャプチャ(括弧で囲んだ部分)の結果も個別に確認できます
- • フラグを選択して、マッチング動作をカスタマイズできます
- • サンプルパターンから選んで、すぐに試すことができます
- • 入力内容は自動的に保存され、次回アクセス時に復元されます
こんな人におすすめ
- ✓Webフォームのバリデーション(メールアドレス、電話番号等)を実装したい開発者の方
- ✓サーバーログやアプリケーションログから特定のエラーを抽出したいエンジニアの方
- ✓テキストエディタで複雑な一括置換を行いたいライターの方
- ✓Webスクレイピングで HTML から URL や画像を効率的に抽出したいデータアナリストの方
- ✓ソースコードのリファクタリングで関数名や変数名を一括変換したいプログラマーの方
- ✓正規表現の学習や動作確認を実際のテキストで試したい初学者の方
正規表現テスターの使い方
- 正規表現パターンを入力します(例:\d{3}-\d{4}で郵便番号形式)
- フラグ(g:全体マッチ、i:大文字小文字無視、m:複数行)を選択します
- テストしたいテキストを入力エリアに入力します
- 「テスト実行」ボタンをクリックすると、マッチ結果がハイライト表示されます
- マッチした部分、グループキャプチャ、マッチ数などの詳細情報を確認できます
正規表現テスターの活用シーン
メールアドレス・電話番号のバリデーション
Webフォームでユーザーが入力したメールアドレスや電話番号が正しい形式かチェックする正規表現パターンを作成・テストできます。例えば、メールアドレスなら「^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$」、日本の携帯電話番号なら「^0[789]0-\d{4}-\d{4}$」のようなパターンを作成し、実際の入力例でテストして精度を確認できます。
ログファイルの解析・エラー抽出
サーバーログやアプリケーションログから特定のエラーメッセージやIPアドレス、タイムスタンプを抽出する正規表現パターンを作成できます。例えば、Apache/Nginxのアクセスログから「404 Not Found」のエラーを抽出したり、IPアドレス(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})を検出したりできます。パターンをテストして正確性を確認した後、sedやawkコマンドで実際のログ解析に活用できます。
テキスト置換・一括変換
テキストエディタやIDEで大量のテキストを一括置換する際、正規表現パターンを使えば複雑な置換が可能です。例えば、日付形式を「2024/01/15」から「2024-01-15」に変換する場合、検索パターン「(\d{4})/(\d{2})/(\d{2})」、置換パターン「$1-$2-$3」のように後方参照(キャプチャグループ)を使います。このツールで事前にパターンをテストすることで、誤った置換を防げます。
HTMLタグ・URLの抽出
Web スクレイピングやデータ抽出の際、HTMLタグやURLを正規表現で抽出できます。例えば、HTMLから画像タグを抽出する「<img[^>]*src=["']([^"']+)["'][^>]*>」、URLを抽出する「https?://[\w/:%#\$&\?\(\)~\.=\+\-]+」のようなパターンを作成します。BeautifulSoupやCheerioなどのパーサーと併用することで、効率的なデータ抽出が可能です。
プログラムコードの検索・リファクタリング
ソースコード内の特定のパターン(関数名、変数名、コメント等)を検索・置換する際に正規表現が活用できます。例えば、JavaScriptで「function ○○()」形式の関数定義を「const ○○ = () =>」のアロー関数に変換したり、使われていない変数を検出したりできます。Visual Studio CodeやIntelliJ IDEAの検索・置換機能で正規表現を使う前に、このツールでパターンを検証できます。
よくある質問(FAQ)
- Q: 正規表現とは何ですか?
- A: 正規表現(Regular Expression、略してRegex)は、文字列のパターンを表現するための記法です。特定の文字列を検索したり、文字列が特定のパターンに一致するか検証したり、文字列を置換したりする際に使われます。例えば、「\d{3}-\d{4}」は「3桁の数字-4桁の数字」というパターンを表し、郵便番号形式の文字列にマッチします。プログラミング、テキスト処理、データ抽出など幅広い場面で活用されます。
- Q: 基本的な正規表現のメタ文字を教えてください
- A: 主なメタ文字は以下の通りです。「.」(任意の1文字)、「*」(直前の文字の0回以上の繰り返し)、「+」(1回以上の繰り返し)、「?」(0回または1回)、「^」(行の先頭)、「$」(行の末尾)、「\d」(数字)、「\w」(英数字とアンダースコア)、「\s」(空白文字)、「[abc]」(a、b、cのいずれか)、「[^abc]」(a、b、c以外)、「(pattern)」(グループ化)などがあります。
- Q: フラグ(g、i、m)の意味は?
- A: フラグは正規表現の動作を制御するオプションです。「g」(global)は全体マッチを意味し、テキスト全体から一致する箇所をすべて検索します。「i」(ignore case)は大文字小文字を区別せずにマッチします。「m」(multiline)は複数行モードで、「^」と「$」が各行の先頭・末尾にマッチします。これらは組み合わせて使用でき、例えば「/pattern/gi」のように指定します。
- Q: グループキャプチャとは何ですか?
- A: グループキャプチャは、正規表現の一部を括弧「()」で囲むことで、マッチした部分を抽出・再利用できる機能です。例えば、「(\d{4})-(\d{2})-(\d{2})」で「2024-01-15」にマッチした場合、$1=2024、$2=01、$3=15として取得できます。置換時に「$1年$2月$3日」のように後方参照することで、「2024年01月15日」に変換できます。
- Q: 貪欲マッチと非貪欲マッチの違いは?
- A: 貪欲(greedy)マッチは、できるだけ長い文字列にマッチしようとします。例えば、「<.*>」は「<div>text</div>」全体にマッチします。非貪欲(lazy、最小)マッチは「?」を付けて「<.*?>」とすることで、最短のマッチを優先し、「<div>」と「</div>」それぞれにマッチします。HTMLタグを抽出する際などに重要な概念です。
- Q: エスケープが必要な文字は何ですか?
- A: 正規表現で特別な意味を持つメタ文字(. * + ? ^ $ { } [ ] ( ) | \)を文字として扱いたい場合は、バックスラッシュ「\」でエスケープします。例えば、ドット「.」を文字として検索する場合は「\.」と書きます。URLの「http://example.com」を検索する場合は「http://」の「//」も「\/\/」とエスケープします(JavaScriptでは「\\/\\/」)。
- Q: 正規表現のパフォーマンスを改善する方法は?
- A: 正規表現のパフォーマンスを改善するには、不要な貪欲マッチを避ける(「.*」ではなく「.*?」)、具体的な文字クラスを使う(「.」ではなく「[a-z]」)、先読み・後読みを活用する、バックトラッキングを減らす、などの工夫があります。また、複雑な正規表現は可読性が低下するため、コメント付き正規表現(/x フラグ)や、複数の正規表現に分割することも検討してください。
使い方ガイド
ステップ付きの解説記事で詳しい手順と活用例をチェックできます。