スポンサーリンク

python 正規表現でメールアドレスの一致チェック、抽出を行う


メールアドレスの正規表現パターンの解説

メールアドレスを正規表現のパターンとして表す時、下記のようになる。

“(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)”

先頭から解説していきます。

^[a-zA-Z0-9_.+-]+@

  • ^は直後の文字が先頭かどうか
  • []は中にある文字のどれか
  • +は直前の文字の1回以上の繰り返し
  • 最後は@

上記の点をまとめると、
英数字、”_.+-“の組み合わせの文字列が先頭に来るということ。
その後ろは@になる。

[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

  • $は行末で表す
  • \.は.という文字を表す

ここは@以降のところで、上記から
英数字と-の文字列、. 、英数字と-、. の文字列を表す。

一致チェック

文字列がメールアドレスかどうかを、
正規表現を使ってチェックします。

サンプルコード

実行結果

解説

re.match()で正規表現にマッチするかを判断している。
メールアドレスがpatternにマッチしていると、オブジェクトを返し、
マッチしていないなら、Noneを返す。

メールアドレス抽出

文字列に含まれたメールアドレスを正規表現を使って全て抽出する。

サンプルコード

実行結果

解説

文章からメールアドレスを抽出している。
上記の一致チェックでは、先頭と行末を表す^$がありましたが、
今回は文章中のメールアドレスを取り出すので削除している。

re.findallは、文字列の中から、正規表現にマッチした文字列をリストにして全て取り出す。

関連記事

Python
スポンサーリンク
シェアする
trelab