要求:
编写一个程序来验证一个邮箱地址是否合法。
- 定义函数
is_email_valid()
,参数为email
。 - 在函数内,如果邮箱
email
满足下面提到的条件,则返回True
,否则返回False
。
要求邮箱有效,必须满足以下条件:
- 字符串必须包含一个
@
字符。 - 字符串必须包含一个
.
字符。 @
必须有至少一个字符在它之前。.
和@
必须处于适当的位置。
例如,hello.email@com
是无效的,而john.smith@email.com
是有效的。
示例输入
user@website.com
示例输出
True
解释: 测试输入
user@website.com
返回True
,因为它满足程序中指定的有效邮箱地址的所有条件。
代码:
import re
def is_email_valid(email):
if not email:
return False
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
return re.match(pattern, email) is not None
# 获取输入
email = input()
# 调用函数
print(is_email_valid(email))
正则表达式解释:
^
:表示匹配字符串的开头。[a-zA-Z0-9_.+-]+
:表示匹配一个或多个字母、数字、下划线、句点、加号和减号,这是邮箱地址的用户名部分。@
:匹配 "@" 字符。[a-zA-Z0-9-]+
:表示匹配一个或多个字母、数字和减号,这是邮箱地址的域名部分。\.
:匹配点号 ".",需要转义符号 ""。[a-zA-Z0-9-.]+
:表示匹配一个或多个字母、数字、减号和点号,这是邮箱地址的域名后缀部分。$
:表示匹配字符串的结尾。