Python | 文字列にメールアドレスがあるかどうか判定する方法

2023-02-25Python 判別・判定,Python

Python | 文字列にメールアドレスがあるかどうか判定する方法

Pythonで文字列にメールアドレスがあるかどうか判定する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

文字列がメールアドレスがあるかどうか判定する

Pythonで文字列がメールアドレスが含まれているか判定するには、正規表現を利用可能にする「re」モジュールを使ってmatch()メソッドでパターンマッチを実装します。

メールアドレスのパターンマッチ条件は以下の通りとなります。

  • 前半部分は「a-Z」と「数字」「_(アンダーバー)」「.(ドット)」の羅列
  • 後半部分は「a-Z」と「数字」と「.(ドット)」が含まれているか
  • 前半部分と後半部分の間に「@」が挟まれているかどうか

以下は文字列がメールアドレスにパターンマッチしているかどうかを判別するサンプル関数です。

import re

def isMail(str):
	pattern = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
	return re.match(pattern, str) is not None

上記の関数isMail()を例えば、if文で呼び出してメールアドレスかどうかを判別します。

if isMail('example@gmail.com'):
	print('メールアドレスです。')
else:
	print('メールアドレスではありません。')

# メールアドレスです。