编写一段python程序与用户交互,允许用户输入一个邮箱地址,程序需判断邮箱是否合法,若合法则分解出邮箱的username部分和domain部分。
对邮箱地址,有如下要求
regex = r'\b[A-Za-z0-9_-]+@[A-Za-z0-9-]+\.[A-Z|a-z]{2,}\b'
按照如下解释来理解这个正则表达式
根据正则表达式,可以写出判断邮箱地址合法性的函数
def is_valid_email(email):
regex = r'\b[A-Za-z0-9_-]+@[A-Za-z0-9-]+\.[A-Za-z]{2,}\b'
if re.fullmatch(regex, email):
return True
return False
email = input("请输入一个邮箱地址:")
input函数接收用户在终端的输入,返回一个字符串,程序运行到这行代码时,会在这里暂停,等待用户输入,当用户输入一个回车时,这行代码运行结束,将用户的输入作为字符串返回,赋值给email变量
@符号前面的部分是用户名,后面的部分是邮箱的domain, 字符串的index方法可以返回子串开始的索引位置
email.index('@') # @的索引位置
通过切片操作,可以得到用户名和domain部分
username = email[0:email.index('@')]
domain = email[email.index('@')+1: ]
print(f"邮箱用户名是: {username}")
print(f"邮箱域名是: {domain}")
import re
def is_valid_email(email):
regex = r'\b[A-Za-z0-9_-]+@[A-Za-z0-9-]+\.[A-Za-z]{2,}\b'
if re.fullmatch(regex, email):
return True
return False
email = input("请输入一个邮箱地址:")
if is_valid_email(email):
username = email[0:email.index('@')]
domain = email[email.index('@')+1: ]
print(f"邮箱用户名是: {username}")
print(f"邮箱域名是: {domain}")
else:
print("不合法的邮箱")
QQ交流群: 211426309