正規表現テスター 日本語UI|パターン検証を無料で
正規表現は強力な反面、書き方をミスすると「マッチしない」「マッチしすぎる」「キャプチャグループが意図と違う」など、原因がつかみにくいバグを生みます。本記事では、無料・登録不要でブラウザだけで使える日本語UIの正規表現テスターの使い方、よく使うパターン例(メール・URL・電話番号・郵便番号)、キャプチャグループの確認方法、デバッグのコツをまとめます。エンジニアだけでなく、Excel / スプレッドシートで膨大なデータを整形したい事務職、ログ抽出をしたいマーケターなど、非エンジニアでも覚えておくと圧倒的に作業効率が上がるスキルです。
正規表現テスターでできること
正規表現テスターは、書いたパターンが意図通りに動くかを実データで即座に確認できるツールです。コードに組み込む前にここで動作確認しておけば、本番環境でハマる時間を大幅に減らせます。
- パターンと対象文字列を入れて「マッチ箇所」を視覚的にハイライト
- 名前付きキャプチャグループ((?<name>...))の中身を一覧表示
- 対象文字列内の全一致箇所を検出(gフラグ固定・i/mフラグの切替は無し)
- 日本語文字列(漢字・ひらがな・カタカナ)でのマッチ検証
- よくあるパターンのサンプルから始める
よく使う正規表現パターン例
メールアドレス
実用レベルなら ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ で十分です。RFC完全準拠の厳密なパターンは複雑すぎて実害が出るため、現場では上記の簡易パターンを使うのが定番です。
URL(http/https)
^https?://[\w/:%#\$&\?\(\)~\.=\+\-]+$ で大半のURLにマッチします。日本語URLや国際化ドメインまで対応するなら、URLパースは正規表現でなくURL APIに任せるのが安全です。
日本の電話番号
固定電話+携帯:^0\d{1,4}-?\d{1,4}-?\d{4}$ で多くの国内番号をカバーできます。市外局番なし・国際表記+81・カッコ付きまで対応する場合はパターンが長くなるため、入力前に半角化・ハイフン除去の前処理を入れると簡潔になります。
郵便番号
^\d{3}-?\d{4}$ で「123-4567」「1234567」両対応です。バリデーションでは前処理でハイフンを統一しておくと後続の処理が簡潔になります。
キャプチャグループの活用
正規表現の真価は、パターン全体でマッチさせるだけでなく、名前付きキャプチャグループ (?<name>...) で必要な部分だけを取り出せる点にあります。日付を年・月・日に分解したい、電話番号の市外局番だけ確認したいといった場面で役立ちます。
テスターに (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) のように名前付きグループでパターンを書いて実行すると、マッチ結果の一覧にグループごとの中身が表示されます。実際のコードに組み込む前に、意図通りの値が取れているかここで確認できます。
- 日付分解:(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) で年・月・日を個別に取得
- 電話番号の市外局番抽出:(?<area>0\d{1,4})-\d{1,4}-\d{4} で市外局番だけ確認
- メールアドレスのドメイン抽出:[^@]+@(?<domain>.+) でドメイン部分だけ確認
正規表現のデバッグ手順
思った通りに動かないとき、いきなり全部書き直すのではなく「最小ケースから少しずつ広げる」方法でデバッグするのが王道です。
- 1. 確実にマッチする最小パターンから書き始める
- 2. 1文字ずつパターンを足してマッチが崩れた箇所を特定
- 3. キャプチャグループの中身を逐一テスターで確認
- 4. 否定文字クラス [^...] や 否定先読み (?!...) は最後に追加
- 5. グリーディマッチ .* の暴走には .*? か文字クラス制限で対処
- 6. gフラグは固定のため、マッチ数が期待通りかを都度確認する(0件ならパターンかテスト文字列を見直す)
無料で正規表現テスターを使う手順
free-ai-tools.jpの正規表現テスターはブラウザ内で動作し、登録不要・サーバー送信なしで使えます。社内の機密データや個人情報を含む文字列でもそのまま試せます。
- 1. パターン欄に正規表現を入力
- 2. テスト文字列欄に対象データを貼り付け
- 3. gフラグ(全一致)で対象文字列内のすべての一致箇所を検出(フラグの切替UIは無し)
- 4. マッチ箇所がリアルタイムでハイライトされる
- 5. マッチ数・各マッチの位置・キャプチャグループの中身が結果に表示される
関連ツール(すべて登録不要)
📘 関連ガイド記事
よくある質問
- Q. JavaScript / Python / Ruby で正規表現の挙動が違うことはある?
- A. はい。基本構文は共通ですが、フラグの種類・後方参照の書き方・先読み/後読みの対応状況など細部が異なります。テスターはJavaScript系の構文(PCRE互換)が多いので、本番がPythonやRubyの場合は最終確認は本番言語で行ってください。
- Q. 日本語文字を含むパターンは作れますか?
- A. できます。例えばひらがなだけ抽出するなら [ぁ-ん]+、カタカナなら [ァ-ヶー]+、漢字なら [一-龯]+ で大半をカバーできます。Unicode の \p{Script=Hiragana} 系はランタイムによって対応が分かれるので、本番言語で動くか確認してから使ってください。
- Q. なぜ .* がページを固まらせることがある?
- A. グリーディなパターンの組み合わせ(特にネストした (.+)+ など)はカタストロフィックバックトラッキング(指数爆発)を起こし、ブラウザを固めることがあります。.*? で非貪欲にする、文字クラスで具体的に制限する、で多くは回避できます。
- Q. 入力したテキストはサーバーに送信されますか?
- A. いいえ。本ツールはブラウザ内のJavaScriptで完結し、サーバーへの送信は一切行いません。社内ログ・個人情報を含むデータ・機密ドキュメントの整形にも安心して利用できます。
- Q. スマートフォンでも使えますか?
- A. はい。iOS Safari・Android Chrome 双方で動作します。ただし長文の正規表現はキーボード入力が大変なので、PC利用が現実的です。
- Q. AI に「こういうマッチをしたい」と頼めますか?
- A. はい。本サイトの「ChatGPT風の自然言語→正規表現変換」ツールと組み合わせれば、「メールアドレスの後ろのドメイン部分だけ取り出したい」「全角と半角混在の電話番号を統一したい」と自然語で頼んで正規表現を得られます。生成された式をテスターで実データ検証してから本番投入するのが安全です。
- Q. 商用利用や教育現場での利用は可能ですか?
- A. はい。本ツール側に追加の利用制限はありません。社内研修・プログラミング教育の教材・実務での日常的なテストすべて自由にご利用いただけます。