開発

よく使う正規表現パターン集|メール・電話・URL・郵便番号・日付の実例と注意点

正規表現は、文字列の検索・抽出・置換を一気に行える強力な道具です。本記事では、メールアドレス・電話番号・URL・郵便番号・日付・全角半角の変換といった、実務で頻出する正規表現パターンを実例つきで紹介します。あわせて、メタ文字や量指定子・グループといった基礎と、正規表現を過信しないための注意点も解説します。

公開: 2026-10-16

ログから特定の行だけを抜き出したい、入力されたメールアドレスの形式をチェックしたい、文章中の表記ゆれをまとめて直したい。こうした「文字列のパターンを扱う」作業を一気に片づけてくれるのが正規表現(regular expression、略してregex)です。本記事では、実務でよく使う正規表現パターンを実例つきで紹介しながら、基礎となるメタ文字や量指定子、そして正規表現を使ううえで欠かせない注意点までを解説します。

正規表現とは何か

正規表現とは、文字列の「パターン」を表すための小さな記法です。「数字が3つ続く」「@マークを挟む」「行の先頭にある」といった条件を、短い記号の並びで表現できます。テキストエディタの検索・置換、プログラミング言語、データベース、コマンドラインツールまで、ほぼあらゆる環境で利用でき、いちど覚えれば長く使える知識になります。

正規表現の用途は大きく3つに分けられます。文字列がパターンに一致するかを判定する(バリデーション)、文中から必要な部分を抽出する、そしてマッチした箇所を別の文字列に置換する、です。書いたパターンが意図どおり動くかは、実際に試しながら確かめるのが近道です。手元で動作を確認したいときは正規表現チェッカーにパターンとテスト文字列を入力すると、どこがマッチするかをその場で可視化できます。

まず押さえるメタ文字と量指定子

正規表現の力の源はメタ文字です。メタ文字とは、文字そのものではなく特別な意味を持つ記号のことです。主要なものを押さえれば、たいていのパターンは読み書きできるようになります。

記号意味
.任意の1文字(改行を除く)
[ ]文字クラス。[abc]はa・b・cのいずれか1文字
^行(文字列)の先頭
$行(文字列)の末尾
|選択(OR)。cat|dogはcatまたはdog
( )グループ化・キャプチャ

これらと組み合わせて使うのが、繰り返しの回数を指定する量指定子です。直前の文字やグループが「何回繰り返されるか」を表します。

  • * … 0回以上の繰り返し
  • + … 1回以上の繰り返し
  • ? … 0回または1回(直前の要素を任意にする)
  • {n} … ちょうどn回。{n,}はn回以上、{n,m}はn〜m回

たとえば\dは数字1文字を表す略記で、\d{3}なら「数字がちょうど3つ」、\d+なら「数字が1つ以上」という意味になります。同様に\wは英数字とアンダースコア、\sは空白文字を表します。これらの略記とメタ文字の組み合わせが、パターン作りの基本部品です。なお、メタ文字そのものを文字として扱いたいときは、\.のように直前にバックスラッシュを置いてエスケープします。

グループ・選択・キャプチャ

丸括弧( )は、複数の文字をひとかたまりとして扱うグループ化に使います。たとえば(ab)+は「abの繰り返し」を意味し、ab・abab・abababなどにマッチします。量指定子は直前の1要素にしか効かないため、複数文字をまとめて繰り返したいときはグループが必須です。

グループにはもう一つ重要な役割があります。マッチした部分を後から取り出せるキャプチャです。たとえば日付(\d{4})-(\d{2})-(\d{2})のように書くと、年・月・日がそれぞれ別のグループとして取り出せます。置換の際には$1や\1といった記法でキャプチャした内容を参照でき、「年月日の区切りをスラッシュに変える」といった整形が一発で行えます。表記ゆれの一括変換など、抽出と置換を組み合わせる作業ではテキスト置換ツールが便利です。

パイプ|による選択は、グループと組み合わせると効果的です。(https?|ftp)のように書けば「httpまたはhttpsまたはftp」をまとめて表現できます。グループ・量指定子・選択の3つを使いこなせれば、実用的なパターンの大半はカバーできます。

よく使う実用パターン集

ここからは、実務で頻出する具体的なパターンを紹介します。いずれも用途や許容範囲によって調整が必要な点に注意してください。あくまで出発点として活用し、自分のデータに合うかどうかを正規表現チェッカーで必ず検証しましょう。

メールアドレス(簡易)

^[\w.+-]+@[\w-]+\.[\w.-]+$

「@の前後に文字があり、ドメインにドットを含む」という最小限の形をチェックします。ただし、メールアドレスの正しい仕様は非常に複雑で、完全に検証する正規表現は実用的ではありません。フォーム入力では、この程度の簡易チェックにとどめ、最終確認は確認メールの送信で行うのが現実的です。

日本の電話番号

^0\d{1,4}-?\d{1,4}-?\d{3,4}$

「0で始まり、ハイフンありなしの両方を許容する」例です。日本の電話番号は市外局番の桁数が地域で異なるため、桁数に幅を持たせています。携帯番号だけに絞るなら^0[789]0-?\d{4}-?\d{4}$のように書けます。

URL

https?://[\w.-]+(/[\w./?%&=-]*)?

https?の?によって「http」と「https」の両方にマッチし、続けてドメインと任意のパスを表しています。URLも厳密に書こうとすると複雑になるため、用途に応じて簡略化するのが実用的です。

郵便番号(日本)

^\d{3}-?\d{4}$

「123-4567」「1234567」の両方を許容します。ハイフンを必須にするなら?を外します。

日付(YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

月を01〜12、日を01〜31の範囲に制限した例です。ただし正規表現だけでは「2月30日」のような存在しない日付までは弾けません。厳密な日付チェックはプログラム側の日付処理に任せるのが安全です。

全角半角・空白の整形パターン

日本語のテキストでは、全角と半角の混在や余分な空白が表記ゆれの原因になりがちです。正規表現はこうした整形作業でも力を発揮します。

  • 連続する空白を1つにまとめる:\s+ を半角スペース1つに置換します。
  • 行頭・行末の空白を削除:^\s+|\s+$ を空文字に置換します(複数行モードと併用)。
  • 全角数字の検出:[0-9] で全角数字だけを拾い出せます。全角英字なら[A-Za-z]です。

たとえば「全角で入力された数字を見つけて半角に直したい」という場面では、まず[0-9]で対象を洗い出し、置換で半角へ変換します。こうした検索と置換をセットで行う作業は、テキスト置換ツールで正規表現モードを使うと手早く処理できます。パターンが意図どおりマッチするか不安なときは、置換の前に正規表現チェッカーでマッチ範囲を確認しておくと、思わぬ部分まで書き換えてしまう事故を防げます。

正規表現を過信しないための注意点

正規表現は万能ではありません。便利さゆえに頼りすぎると、かえって落とし穴にはまります。最後に、実務で気をつけたいポイントを整理します。

1. 完全な仕様検証には向かない。メールアドレスやURLのように仕様が複雑なものは、正規表現だけで完璧に検証しようとすると、パターンが長大になり保守不能になります。「明らかに不正な入力を弾く」程度の簡易チェックにとどめ、本当の妥当性は別の手段(確認メール、専用ライブラリ、日付処理など)で担保するのが現実的です。

2. 環境による方言がある。正規表現には複数の系統(方言)があり、使える略記や記法が言語・ツールによって微妙に異なります。あるツールで動いたパターンが別のツールでそのまま動くとは限らないため、移植する際は対象環境での動作確認が欠かせません。

3. 貪欲マッチと性能。量指定子は標準ではできるだけ長くマッチしようとする(貪欲)性質があり、意図せず広い範囲を巻き込むことがあります。最短一致にしたい場合は*?や+?を使います。また、書き方によっては処理が極端に遅くなる「壊滅的バックトラッキング」を招くこともあるため、複雑なパターンは必ずテストしましょう。

正規表現は、基礎となるメタ文字と量指定子、そしてグループを押さえれば、検索・抽出・置換の幅が一気に広がる強力な道具です。本記事のパターンを出発点に、まずは正規表現チェッカーで動きを確かめ、実際の整形作業はテキスト置換ツールで試してみてください。手を動かして検証する習慣こそが、正規表現を安全に使いこなす近道です。

なお本記事は一般的な情報の提供を目的としたものです。正規表現の挙動は使用する言語やツールのバージョンによって異なる場合があるため、重要な処理に用いる際は最新の公式ドキュメントを確認したうえで判断してください。

よくある質問

正規表現とは何ですか?

正規表現(regular expression、regex)とは、文字列の「パターン」を短い記号で表すための記法です。「数字が3つ続く」「@マークを挟む」といった条件を表現でき、文字列がパターンに一致するかの判定(バリデーション)、必要な部分の抽出、別の文字列への置換に使えます。テキストエディタからプログラミング言語まで幅広い環境で利用できます。

メタ文字とは何ですか?

メタ文字とは、文字そのものではなく特別な意味を持つ記号のことです。任意の1文字を表す「.」、文字クラスの「[ ]」、行頭の「^」、行末の「$」、選択(OR)の「|」、グループ化の「( )」などが代表例です。これらに繰り返し回数を表す量指定子(* + ? {n})を組み合わせると、たいていのパターンを読み書きできます。

メールアドレスを正規表現で完全に検証できますか?

いいえ、現実的には困難です。メールアドレスの正しい仕様は非常に複雑で、完全に検証する正規表現は長大で保守不能になります。フォームでは「@の前後に文字があり、ドメインにドットを含む」程度の簡易チェックにとどめ、最終的な妥当性は確認メールの送信で担保するのが現実的です。

貪欲マッチとは何ですか?

量指定子(* や +)は標準では「できるだけ長くマッチしようとする」性質があり、これを貪欲(greedy)マッチと呼びます。意図せず広い範囲を巻き込むことがあるため、最短でマッチさせたい場合は「*?」や「+?」のように量指定子の後ろに「?」を付けて最短一致にします。

正規表現チェッカーで入力したパターンやテキストはサーバーに送信されますか?

WAZA TOOLSの正規表現チェッカーやテキスト置換ツールはすべてブラウザ内で処理され、入力したパターンやテキストがサーバーに送信・保存されることはありません。スマートフォンでも利用でき、何度でも無料でパターンの動作を確認できます。