2021-03-12

正则表达式,用来匹配

#导入re模块
import re

result=re.match(“abc”,“abc.cn”)
print(result.group())
re1=re.match("\w",“hello python”)
print(re1.group())
re2=re.match(".",“hello python”)
print(re1.group())

$

需求:匹配163.com的邮箱地址

email_list = [“xiaoWang@163.com”, “xiaoWang@163.comheihei”, “.com.xiaowang@qq.com”]

for email in email_list:
ret = re.match("[\w]{4,20}@163.com$", email)
if ret:
print("%s 是符合规定的邮件地址,匹配后的结果是:%s" % (email, ret.group()))
else:
print("%s 不符合要求" % email)

|

#匹配出0-100之间的数字
ret = re.match("[1-9]?\d", “8”)
print(ret.group()) # 8

ret = re.match("[1-9]?\d", “78”)
print(ret.group()) # 78

不正确的情况

ret = re.match("[1-9]?\d", “08”)
print(ret.group()) # 0

修正之后的

ret = re.match("[1-9]?\d$", “08”)
if ret:
print(ret.group())
else:
print(“不在0-100之间”)

添加|

ret = re.match("[1-9]?\d$|100", “8”)
print(ret.group()) # 8

ret = re.match("[1-9]?\d$|100", “78”)
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邮箱
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邮箱

\

匹配出 < html > hh < / html >

# 能够完成对正确的字符串的匹配
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</html>")
print(ret.group())

# 如果遇到非正常的html格式字符串,匹配出错
ret = re.match("<[a-zA-Z]*>\w*</[a-zA-Z]*>", "<html>hh</htmlbalabala>")
print(ret.group())

# 正确的理解思路:如果在第一对<>中是什么,按理说在后面的那对<>中就应该是什么

# 通过引用分组中匹配到的数据即可,但是要注意是元字符串,即类似 r""这种格式
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", "<html>hh</html>")
print(ret.group())

# 因为2对<>中的数据不一致,所以没有匹配出来
test_label = "<html>hh</htmlbalabala>"
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", test_label)
if ret:
    print(ret.group())
else:
    print("%s 这是一对不正确的标签" % test_label)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值