Regexテスター
正規表現をテスト
Regexテスター の使い方
正規表現をテスト 無料オンラインツール、登録不要、広告なし。今すぐ無料でお使いいただけます。
正規表現はどのような場面で使いますか?
正規表現(regex)はテキストにマッチするパターンです。正規表現をマスターすることで開発者の生産性が大幅に向上します。50行の文字列操作コードが必要な処理が、1つのよく構築された正規表現で解決できます。
- 入力バリデーション:メールアドレス、日本の電話番号(固定電話・携帯)、郵便番号(〒000-0000形式)、マイナンバー(12桁)、パスワードの強度などをバリデーションします。
- データ抽出:テキストから特定のパターンを抽出します。文書内のすべてのURL、ログファイル内のすべての日付、財務レポート内の金額(¥1,234,567形式)など。
- 高度な検索・置換:複雑なテキスト変換を実行します。日付を「令和7年4月10日」から「2025-04-10」に変換、個人情報の匿名化、空白の正規化など。
- ログファイル解析:Apache、Nginx、アプリケーションログを解析します。IPアドレス、HTTPエラーコード、タイムスタンプをパターンマッチングで抽出してモニタリングとアラートに活用します。
- コードリファクタリング:特定のシグネチャに一致する関数呼び出しを探す、コードベース全体で非推奨APIの使用を特定する、プロジェクト全体のTODO/FIXMEコメントを見つけるなどに使います。
日本のデータによく使うパターン:郵便番号:\d{3}-\d{4}。電話番号:0\d{1,4}-\d{1,4}-\d{4}。携帯電話:0[789]0-\d{4}-\d{4}。メール:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}。日付(和暦):令和\d+年\d+月\d+日。
Frequently Asked Questions
正規表現のg、i、m、sフラグの意味は?
g(グローバル):最初のマッチだけでなくすべてのマッチを見つけます。i(大文字・小文字を区別しない):大文字・小文字に関わらずマッチします。m(複数行):^と$が各行の先頭/末尾にマッチします。s(dotAll):ドット(.)が改行にもマッチします。フラグは組み合わせ可能です。
貪欲マッチと遅延マッチの違いは?
貪欲な量指定子(+、*、{n,})はできるだけ多くにマッチします。<.+>は'<b>テキスト</b>'全体に1つのマッチとしてマッチします。遅延量指定子(+?、*?、{n,}?)はできるだけ少なくにマッチします。<.+?>は'<b>'と'</b>'に別々にマッチします。個々のHTMLタグを抽出するには遅延マッチを使います。
キャプチャグループと非キャプチャグループの違いは?
(パターン)はキャプチャグループで、マッチしたテキストが保存され置換で$1、$2などとして参照できます。(?:パターン)は非キャプチャグループで、量指定子や選択のためにパターンをグループ化しますが、マッチを保存しません。キャプチャ値が不要な場合は非キャプチャグループを使います。
先読みと後読みとは何ですか?
先読み(?=パターン)は文字を消費せずに続くものがパターンにマッチするか確認します。後読み(?<=パターン)は前にあるものを確認します。否定版:(?!パターン)と(?<!パターン)。例:\d+(?=円)は'円'を含めずに数字にマッチします。
JavaScriptで動作するのにPythonでは動作しない理由は?
正規表現のバリアントは言語によって微妙に異なります。Pythonは文字列の先頭/末尾に\Aと\Zを使います。Pythonのraw文字列(r'パターン')はバックスラッシュの二重エスケープを避けます。古いエンジンではJavaScriptは後読みをサポートしない場合があります。常に対象言語で正規表現をテストしてください。
正規表現 vs 文字列メソッド vs パーサー vs AI
正規表現はパターンベースのマッチングと抽出に最適です。強力ですが非専門家には難解です。文字列メソッド(split、indexOf、slice)はシンプルな操作にはより明確で、正規表現が不釣り合いなほど複雑になる場合は優先すべきです。専用パーサー(HTML、JSON、CSV)は構造化フォーマットには常に正規表現より優先されます。正規表現でHTMLを解析しないでください。AI分析はパターンが予測不能な曖昧な自然言語を処理します。問題を安全に解決できる最もシンプルなツールを使ってください。