正規表現とは?
正規表現(regex)は、文字の並びで検索パターンを定義する手法です。たとえば、「すべての電話番号を見つける」といったタスクを、特定の形式(例: 123-456-7890)に合致するパターンで自動化できます。
正規表現を使用する場面
正規表現は様々な場面で使用されます。今回はその中でも代表的な使用例を2つご紹介します。
サクラエディタで一括検索、一括置換
サクラエディタは無料のテキストエディタで、正規表現を使ってメモ帳内のテキストを一括検索・置換できます。たとえば、ログファイルからエラーメッセージを抽出する際、一括検索することで、より効率的に作業を行うことができます。また、一括検索した「電話番号」や「メールアドレス」などをすべて別の値に一括置換することも可能です。
プログラミングでの入力検証
プログラミングでは、正規表現で入力データの形式をチェックします。たとえば、通販サイトの会員登録でウェブフォームのメールアドレスが「xxx@xxx.com」の形式かどうかを確認できます。その形式でなければ、エラーメッセージを表示する、といったことが可能になります。Python、JavaScript、Javaなど多くのプログラミング言語で標準的にサポートされています。
基本構文とパターン
正規表現には独自の構文があり、以下の基本要素があります。
リテラル文字: 文字そのものをマッチ。例えば、aは「a」に一致。
メタ文字: 特殊な意味を持つ文字。例えば
- . : 改行を除く任意の1文字にマッチ。
- * : 前の要素が0回以上繰り返す場合にマッチ。
- + : 前の要素が1回以上繰り返す場合にマッチ。
- ? : 前の要素が0回または1回の場合にマッチ。
- {n} : 前の要素がちょうどn回繰り返す場合にマッチ。
- \d : 任意の数字(0~9)にマッチ。
- [ ] : 文字クラスを定義(例: [abc]は「a」「b」「c」のいずれかにマッチ)。
- ^ : 文字列の開始にマッチ。
- $ : 文字列の終了にマッチ。
- 文字クラス: 角括弧で囲むことで、特定の文字セットを指定。例えば、[a-z]は小文字のaからzまでのいずれかにマッチ。なお、角括弧内でハイフン-を使用する場合、前後に文字や数字を指定すると範囲を示す(例: [a-zA-Z]は小文字a~zまたは大文字A~Z、 [0-9]は0~9のいずれかにマッチ)。
グループと交互: 括弧()で部分パターンをグループ化し、|で選択肢を指定。例えば、cat|dogは「cat」または「dog」にマッチ。
正規表現の実用例
正規表現の実用例をいくつか紹介し、それぞれの用途や仕組みについて解説します。
電話番号(ハイフンあり)
携帯電話や固定電話の番号をチェックする正規表現。
正規表現:\d{2,4}-\d{2,4}-\d{4}
解説:
\d{2,4} は「2桁から4桁の数字に一致する」というルールになります。
このルールを元に \d{2,4}-\d{2,4}-\d{4} を分解して考えると以下の通りになります。
- \d{2,4} → 市外局番(例: 03, 090)
- – → 必須のハイフン記号
- \d{2,4} → 中間の番号部分(例: 1234)
- – →必須のハイフン記号
- \d{4} → 最後の4桁の番号
メールアドレス
メールアドレスの形式をチェックする正規表現。
正規表現:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
解説:
- [a-zA-Z] は 「小文字のaからz、大文字のAからZまでの英字を許容する」というルールになります。
- [0-9] は 「0から9までの数値を許容する」というルールになります。
- [._%+-] は .(ドット)、_(アンダースコア)、%(パーセント)、+(プラス)、-(ハイフン) の5種類の記号のみを許容する」というルールになります。
- + は 「1文字以上の文字列であること」というルールになります。
- {2,} は「2文字以上(.jp, .com, .org など)」というルールになります。
このルールを元に [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} を分解して考えると以下の通りになります。
- [a-zA-Z0-9._%+-]+ → ユーザー名の部分(英数字や記号を許容)
- @ → 必須の「@」記号
- [a-zA-Z0-9.-]+ → ドメイン名の部分
- \. → 「\」はエスケープ文字。「.」を文字列として扱う
- [a-zA-Z]{2,}$ → ドットの後に2文字以上のTLD(例: .com, .jp など)
まとめ

正規表現は、テキストデータの取り扱いを効率化し、複雑なパターンマッチングを可能にする強力なツールです。プログラマーやデータアナリスト、テキスト編集者にとって、学習する価値は大いにあります。この記事を参考に、ぜひ正規表現を試してみてください。
無料のプログラミングスクール「テクドリ」の卒業生のインタビュー動画を、インスタグラムほか公式SNSにて公開中!