正規表現(せいきひょうげん、Regular Expression)とは、文字列の中から、特定のパターンに一致する部分を探し出すための記号のルールのことです。「regex(レジェックス)」とも呼ばれ、検索や置換、入力内容のチェックなど、文字列を扱うさまざまな場面で使われています。
イメージとしては、正規表現は「〇〇で始まり、数字が3つ続くもの」を指定できる万能な虫めがねのようなものです。1文字ずつ具体的に指定しなくても、特徴を条件として伝えるだけで、当てはまる文字列を見つけ出せます。
正規表現とは
正規表現は、文字の並びを表す特別な記号を組み合わせることで、「こういう形の文字列」という条件(パターン)を表現する方法です。プログラミング言語やテキストエディタ、検索ツールなど、幅広いソフトウェアで共通して使われています。
正規表現が必要とされる理由
「abc123」のような特定の1つの文字列だけでなく、「アルファベット3文字+数字3文字」といった条件に当てはまる文字列すべてを一度に探したい場面は数多くあります。正規表現を使うことで、こうした柔軟な条件検索を、短い記述でまとめて表現できます。
基本的な記号
正規表現では、任意の1文字を表す「.」、直前の文字の0回以上の繰り返しを表す「*」、行の先頭・末尾を表す「^」「$」など、決まった意味を持つ記号を組み合わせてパターンを作ります。これらの記号を覚えることが、正規表現を使いこなす第一歩です。
文字の種類を指定する
数字だけ、アルファベットだけといった特定の種類の文字だけを対象にしたい場合には、「[0-9]」のように角括弧を使って文字の範囲を指定します。あらかじめ用意された「\d(数字)」「\w(英数字)」といった略記も、よく利用されます。
正規表現が使われる場面
メールアドレスの形式が正しいかをチェックする入力チェック、大量の文書から特定のパターンを一括で置き換える検索・置換、ログファイルから必要な情報だけを抜き出すデータ抽出など、正規表現は日常的なプログラミング作業の中で幅広く活用されています。
プログラミング言語との関係
正規表現の書き方には、言語やツールによって細かな違いはあるものの、基本的な考え方は共通しています。Perlという言語は正規表現の扱いに優れていることで知られ、その使いやすさが多くの後発言語にも影響を与えました。
正規表現のメリット
条件を1つの短い記述にまとめられるため、複雑な文字列処理のプログラムを大幅に短くできることが最大の利点です。同じ処理を条件分岐の積み重ねで書くよりも、見通しがよく保守しやすいコードになりやすい傾向があります。
正規表現の注意点
記号の組み合わせが複雑になると、書いた本人以外には読み解きにくくなるという弱点もあります。複雑な正規表現には、意図を説明するコメントを添えておくなど、後から見返したときに理解しやすい工夫が推奨されています。
| 記号 | 意味 |
|---|---|
| . | 任意の1文字 |
| * | 直前の文字の0回以上の繰り返し |
| [0-9] | 0から9までのいずれか1文字 |
| ^ $ | 文字列の先頭・末尾 |

コメント