正規表現テスター 日本語UI|パターン検証と置換を無料で
公開日: 2026-05-02
正規表現は強力な反面、書き方をミスすると「マッチしない」「マッチしすぎる」「キャプチャグループが意図と違う」など、原因がつかみにくいバグを生みます。本記事では、無料・登録不要でブラウザだけで使える日本語UIの正規表現テスターの使い方、よく使うパターン例(メール・URL・電話番号・郵便番号)、置換プレビューの活用、デバッグのコツをまとめます。
正規表現テスターでできること
正規表現テスターは、書いたパターンが意図通りに動くかを実データで即座に確認できるツールです。コードに組み込む前にここで動作確認しておけば、本番環境でハマる時間を大幅に減らせます。
- パターンと対象文字列を入れて「マッチ箇所」を視覚的にハイライト
- キャプチャグループ(()で囲った部分)の中身を一覧表示
- 置換パターン($1 / $2)の置換後プレビュー
- フラグ(i: 大小文字無視 / g: 全マッチ / 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」両対応です。バリデーションでは前処理でハイフンを統一しておくと後続の処理が簡潔になります。
置換パターンの活用
正規表現の真価は「検索」より「置換」で発揮されます。例えば、テキスト中の電話番号を全部マスクしたい、HTMLタグだけ削除したい、特定形式の日付をISO形式に変換したいなど、実務でよく出る整形タスクを一気に処理できます。
キャプチャグループを使うと、(\d{4})-(\d{2})-(\d{2}) を $1年$2月$3日 に置換するように、一部だけ取り出して並べ替えられます。テスターで置換プレビューを確認してから、実コードに反映するのが安全です。
- 電話番号マスク:\d{4} → **** で末尾4桁を伏せ字化
- HTMLタグ削除:<[^>]+> → 空文字列でタグを除去
- 日付フォーマット変換:(\d{4})/(\d{2})/(\d{2}) → $1-$2-$3
- 全角スペース→半角:\u3000 → 半角スペース
正規表現のデバッグ手順
思った通りに動かないとき、いきなり全部書き直すのではなく「最小ケースから少しずつ広げる」方法でデバッグするのが王道です。
- 1. 確実にマッチする最小パターンから書き始める
- 2. 1文字ずつパターンを足してマッチが崩れた箇所を特定
- 3. キャプチャグループの中身を逐一テスターで確認
- 4. 否定文字クラス [^...] や 否定先読み (?!...) は最後に追加
- 5. グリーディマッチ .* の暴走には .*? か文字クラス制限で対処
- 6. フラグ g を付け忘れて全件置換が効かない事故に注意
無料で正規表現テスターを使う手順
free-ai-tools.jpの正規表現テスターはブラウザ内で動作し、登録不要・サーバー送信なしで使えます。社内の機密データや個人情報を含む文字列でもそのまま試せます。
- 1. パターン欄に正規表現を入力
- 2. テスト文字列欄に対象データを貼り付け
- 3. フラグ(i / g / m)を必要に応じてオン
- 4. マッチ箇所がリアルタイムでハイライトされる
- 5. 置換欄を埋めると、置換後プレビューが下に表示される
関連ツール(すべて登録不要)
よくある質問
- Q. JavaScript / Python / Ruby で正規表現の挙動が違うことはある?
- A. はい。基本構文は共通ですが、フラグの種類・後方参照の書き方・先読み/後読みの対応状況など細部が異なります。テスターはJavaScript系の構文(PCRE互換)が多いので、本番がPythonやRubyの場合は最終確認は本番言語で行ってください。
- Q. 日本語文字を含むパターンは作れますか?
- A. できます。例えばひらがなだけ抽出するなら [ぁ-ん]+、カタカナなら [ァ-ヶー]+、漢字なら [一-龯]+ で大半をカバーできます。Unicode の \p{Script=Hiragana} 系はランタイムによって対応が分かれるので、本番言語で動くか確認してから使ってください。
- Q. なぜ .* がページを固まらせることがある?
- A. グリーディなパターンの組み合わせ(特にネストした (.+)+ など)はカタストロフィックバックトラッキング(指数爆発)を起こし、ブラウザを固めることがあります。.*? で非貪欲にする、文字クラスで具体的に制限する、で多くは回避できます。