![](https://img-blog.csdnimg.cn/148091ef2ea442a184f9fa7f05f07892.png)
![](https://img-blog.csdnimg.cn/448b949e671845c5b6df129128e23bc7.png)
![](https://img-blog.csdnimg.cn/66bb9b18284648388838394be9d672bd.png)
import re
email_list = ["xiaoWang@163.com", "xiaoWang@163.comheihei", "lzfr@163.com", ".com.xiaowang@qq.com"]
for email in email_list:
ret = re.match("[\w]{4,20}@163\.com", email)#4到20位RP
# ret = re.match("[\w]{4,20}@163\.com$", email)
if ret:
print("%s 是符合规定的邮件地址,匹配后的结果是:%s" % (email, ret.group()))
else:
print("%s 不符合要求" % email)
#输出:
# xiaoWang@163.com 是符合规定的邮件地址,匹配后的结果是:xiaoWang@163.com
# xiaoWang@163.comheihei 是符合规定的邮件地址,匹配后的结果是:xiaoWang@163.com
# lzfr@163.com 是符合规定的邮件地址,匹配后的结果是:lzfr@163.com
#注:rp@163.com
# .com.xiaowang@qq.com 不符合要求
![](https://img-blog.csdnimg.cn/1dd70221e50b487aa12fe39a5960cab0.png)
#匹配出0-100之间的数字
import re
ret = re.match("[1-9]?\d$|100","81")
ret2 = re.match("[1-9]\d$|100","81")#没?
ret3 = re.match("[1-9]\d|100","81")#没$
print(ret.group()) # 8
print(ret2.group()) # 8
print(ret3.group()) # 8
#RP注:匹配[ ]中列举的字符而/d匹配数字,即0-9
# #?匹配前⼀个字符出现1次或者0次,即要么有1次,要么没有 用在字符或(...)之后 abc? ab,abc
#? 这个?相当于占位符了 有就显示 没有就不显示
#$ 匹配字符串结尾RP问题来了 有没有$ 有啥区别?
ret = re.match("[1-9]?\d$|100","65")
print(ret.group()) # 78
ret = re.match("[1-9]?\d$|100","08")
# print(ret.group()) # 不是0-100之间
ret = re.match("[1-9]?\d$|100","100")
print(ret.group()) # 100
#需求:匹配出163、126、qq邮箱
import re
ret = re.match("\w{4,20}@163\.com", "test@163.com")
print(ret.group()) # test@163.com
ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@126.com")
print(ret.group()) # test@126.com
ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@qq.com")
print(ret.group()) # test@qq.com
ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@gmail.com")
if ret:
print(ret.group())
else:
print("不是163、126、qq邮箱") # 不是163、126、qq邮箱
#不是以4、7结尾的⼿机号码(11位)
tels = ["13100001234", "18912344321", "10086", "18800007777"]
for tel in tels:
ret = re.match("1\d{9}[0-35-68-9]", tel)
if ret:
print(ret.group())
else:
print("%s 不是想要的⼿机号" % tel)
#提取区号和电话号码
ret = re.match("([^-]*)-(\d+)","010-12345678")
print(ret.group())
print(ret.group(1))
print(ret.group(2))