匹配郵箱的常見(jiàn)正則表達(dá)式如下:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
解釋如下:
^
匹配字符串的開(kāi)頭[a-zA-Z0-9._%+-]+
匹配用戶名,包括大小寫(xiě)字母、數(shù)字和一些特殊字符,例如 .、_、%、+、-@
匹配 @ 符號(hào)[a-zA-Z0-9.-]+
匹配域名,包括大小寫(xiě)字母、數(shù)字和一些特殊字符,例如 .、-\.
匹配 . 符號(hào)的轉(zhuǎn)義字符[a-zA-Z]{2,}
匹配頂級(jí)域名,包括大小寫(xiě)字母,至少匹配兩個(gè)字母$
匹配字符串的結(jié)尾
示例代碼如下:
import re
email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
email1 = 'user@domain.com'
email2 = 'user_name-123@gmail.com'
email3 = '123456@qq.com'
email4 = 'admin@example..com'
email5 = 'user@mail'
for email in [email1, email2, email3, email4, email5]:
if re.match(email_pattern, email):
print(f'{email} is a valid email')
else:
print(f'{email} is not a valid email')
輸出結(jié)果如下:
user@domain.com is a valid email
user_name-123@gmail.com is a valid email
123456@qq.com is a valid email
admin@example..com is not a valid email
user@mail is not a valid email