正则表达式——子模式

import re
# string = "this is a love1ly girl lovel1y"
# pattern = re.compile(r"lovely")
# ret = pattern.search(string)
# print(ret.group())
# # group()是返回匹配的整个表达式的字符串


string = "额呵呵<span><div>床前明月光,疑是地上霜</div></span>"
pattern = re.compile(r"<(\w+)><(\w+).*</(\2)></(\1)>")
ret = pattern.search(string)

print(ret.group())

# 指返回匹配的整个表达式的第一个子模式的字符串
# 显示结果:<span><div>床前明月光,疑是地上霜</div></span>

print(ret.group(1))

# group(1)表示匹配的第一个子模式的字符串,其他的同理
# 显示结果:span

print(ret.group(2))
# 显示结果:div




string = "lakdsk<span><div>醉卧沙场君莫笑</div></span>呵呵呵<a><div>古来征战几人回</div></a>哈哈哈"
pattern = re.compile(r"<(\w+)><(\w+)>.*</\2></\1>")
rer = pattern.search(string)

print(rer)
#显示结果是一个对象
#显示结果:<_sre.SRE_Match object; span=(6, 37), match='<span><div>醉卧沙场君莫笑</div></span>'>

print(rer.group())

#显示结果:<span><div>醉卧沙场君莫笑</div></span>



pattern1 = re.compile(r"(<(\w+)><(\w+)>.*</\3></\2>)")

re1 =pattern1.findall(string)

print(re1)

#显示结果:[('<span><div>醉卧沙场君莫笑</div></span>', 'span', 'div'), ('<a><div>古来征战几人回</div></a>', 'a', 'div')]
#注意:使用findall进行匹配时,有几个子模式,就在列表中显示几个子模式

转载于:https://www.cnblogs.com/kuangkuangduangduang/p/10373095.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值