正则表达式——子模式
Posted kuangkuangduangduang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式——子模式相关的知识,希望对你有一定的参考价值。
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进行匹配时,有几个子模式,就在列表中显示几个子模式
以上是关于正则表达式——子模式的主要内容,如果未能解决你的问题,请参考以下文章