正規表現(せいきひょうげん)とは、特定のパターンに基づいて文字列を検索したり、抽出したりするための強力なツールです。例えば、「〇〇の中からメールアドレスだけを抜き出したい」といった場合に役立ちます。
正規表現には、いくつかの基本的な書き方があります。ここでは、一部を紹介します。
特定の文字を指定する際には、角括弧を使います。例えば、[abc]
は「a」「b」「c」のいずれかを表します。
特定のパターンを繰り返す場合、アスタリスク(*
)やプラス(+
)を使います。a*
は「a」が0回以上繰り返されること、a+
は「a」が1回以上繰り返されることを示します。
特定の文字を除外したい場合、ハットマーク(^
)を使います。たとえば、[^abc]
は「a」「b」「c」以外の任意の文字を表します。
では、正規表現を使ってメールアドレスを抽出する実践例を見てみましょう。
次のようなテキストを考えます。
これはテストですね。私のメールアドレスは sample@example.com です。サポートは support@test.com までどうぞ。
メールアドレスのパターンは、一般的には以下のように表現できます。
[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}
この正規表現は、以下の要素を含んでいます:
[\w._%+-]+
)@
)[\w.-]+
).[a-zA-Z]{2,}
)この正規表現を使って、先ほどのサンプルテキストからメールアドレスを抽出してみます。以下のようにJavaScriptなどで使うことができます。
const text = "これはテストですね。私のメールアドレスは sample@example.com です。サポートは support@test.com までどうぞ。";
const regex = /[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}/g;
const emails = text.match(regex);
console.log(emails); // ["sample@example.com", "support@test.com"]
正規表現は非常に便利で、データ抽出の際に役立ちます。特にメールアドレスのように決まったパターンのデータを取り出すのには最適です。