python正则表达式:匹配汇总

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 不符合要求

#匹配出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))

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值