正则表达式匹配p标签_Python正则表达式——分组匹配

07209bd052a8070fc302a3c483ce195c.png
这一节我们介绍一下分组匹配。

ca6224eb80f2343d3433e642c872ab70.png
import re



# |	匹配左右任意一个表达式
ma = re.match(r'abc|d', 'abc')
print(ma.group())	# 输出:abc

ma = re.match(r'abc|d', 'd')
print(ma.group())	# 输出:d



# ()	括号中的表达式作为一个分组
# 例:匹配163邮箱或126邮箱
ma = re.match(r'[w]{4,10}@(163|126).com', 'lianflower@163.com')	
print(ma.group())       # 输出:lianflower@163.com

ma = re.match(r'[w]{4,10}@(163|126).com', 'lianflower@126.com')
print(ma.group())       # 输出:lianflower@126.com



# <number>	引用编号为number(数字)的分组所匹配到的字符串
# 例:匹配html标签的有效性
ma = re.match(r'<[w]+>', '<book>')	
print(ma.group())       # 输出:<book>

ma = re.match(r'<([w]+>)', '<book>')	# 注意这里分组匹配的范围为([w]+>) 没有左边的<	
print(ma.groups())      # 输出:('book>',)	# 当我们在正则表达式中使用()进行分组匹配时。
						# 那么我们可以使用groups以元组的形式输出匹配结果

ma = re.match(r'<([w]+>)1', '<book>book>')	# 1用来引用分组([w]+>)所匹配到的字符串book>
print(ma.group())       # 输出:<book>book>

ma = re.match(r'<([w]+>)</1', '<book></book>')# 在1前加上字符</就可以匹配出</book>
print(ma.group())       # 输出:<book></book>

ma = re.match(r'<([w]+>)[w]+</1', '<book>python</book>')# 再加上[w]+后,可以匹配一个完整的html标签
print(ma.group())       # 输出:<book>python</book>



# (?P<name>)	为分组起一个别名(因为一个正则表达式中可能有多个分组,
		# 所以起个别名在引用的时候会比较方便)

# (?P=name)	引用名为name的分组所匹配到的字符串

ma = re.match(r'<(?P<song>[w]+>)[w]+</(?P=song)', '<book>python</book>')
print(ma.group())       # 输出:<book>python</book>
			# (?P<song>[w]+>)意思为:为分组([w]+>)起一个别名为song
			# (?P=song)意思为:引用名为song的分组所匹配到的字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值