【プログラミング初心者向け】正規表現とは?使用例もまとめて解説!

正規表現とは?

正規表現(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,}

解説:

  1. [a-zA-Z] は 「小文字のaからz、大文字のAからZまでの英字を許容する」というルールになります。
  2. [0-9] は 「0から9までの数値を許容する」というルールになります。
  3. [._%+-] は .(ドット)、_(アンダースコア)、%(パーセント)、+(プラス)、-(ハイフン) の5種類の記号のみを許容する」というルールになります。
  4. + は 「1文字以上の文字列であること」というルールになります。
  5. {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 など)

まとめ

正規表現は、テキストデータの取り扱いを効率化し、複雑なパターンマッチングを可能にする強力なツールです。プログラマーやデータアナリスト、テキスト編集者にとって、学習する価値は大いにあります。この記事を参考に、ぜひ正規表現を試してみてください。

まずは無料説明会・体験セミナー

テックドリームは無料のプログラミングスクールです。「プログラマってどういう仕事?」「自分にできるのかな?」という方も、まずは体験セミナーでプログラミングに触れてみませんか?テックドリームは未経験の方を丁寧にサポートする体制をご用意しています。不安なことや、入校までの疑問点なども気軽にご相談いただけます。

Webかんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

Webかんたん予約ができない場合や、ご質問がございましたら、お気軽にお電話ください。

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>テクド・リム

テクド・リム


「テクドリ」の公式キャラクター。
エンジニアだった父の影響を受けて、夢に向かって日々勉強に励むエンジニアのタマゴ。
夢は「世界を変える、すごいエンジニアになること!」

彼女が通うプログラミングスクールについては「テクドリとは」ページにて紹介中!

CTR IMG