python正则表达式分组命名_python正则表达式分组标记

1 (?:…)

表示一个匹配不用保存的分组

>>> a = '123dd'

>>> re.match('(?:\d+)', a).groups()

()

>>> re.match('(\d+)', a).groups()

('123',)

>>>

2 (?P…)

使用标签表示匹配的内容,注意这里用的是groupdict()

>>> re.match('(?P\d+)', a).groupdict()

{'data': '123'}

>>>

3(?P=name)

引用之前已经匹配的tag

>>> a = '123dd123'

>>> re.match('(?P\d+)dd(?P=data)$', a).groupdict()

{'data': '123'}

>>>

以上例子中,第一个data为123, 后面的data引用了上一个匹配的data,所以也得匹配

4 (?#…)

表示注释,所有内容都被忽略

>>> re.match('(?P\d+).*?(?#this is coment)', a).groupdict()

{'data': '123'}

>>>

5 (?=…)

正向前视断言。仅当子表达式 … 在 此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配

>>> re.match('\w+(?=\d)', 'aa123').group()

'aa12'

可以看出,匹配的是单个数字之前的内容

6 (?!..)

负向前视断言。仅当子表达式 … 不在 此位置的右侧匹配时才继续匹配。例如,例如,\w+(?!\d) 与后不跟数字的单词匹配,而不与该数字匹配

>>> re.match('\w+(?!\d)', 'aa12.3').group()

'aa12'

>>>

7 (?<=…)

正向后视断言。仅当子表达式 …在 此位置的左侧匹配时才继续匹配。例如,(?<=19)99 与跟在 19 后面的 99 的实例匹配

>>> re.search('(?<=95|98|NT)Windows', '95Windows')

8 (?

负向后视断言。仅当子表达式 …不在此位置的左侧匹配时才继续匹配。例如,(?

>>> re.search('(?

9 (?(id/name)Y|N)

如果分组所提供的id或者name存在,就返回正则表达式的条件匹配Y,如果不存在,就返回N;|N是可选项

如:(?(1)y|x)

confiself

发布了127 篇原创文章 · 获赞 10 · 访问量 24万+

私信

关注

标签:匹配,re,python,当子,正则表达式,123,分组,data,match

来源: https://blog.csdn.net/u012599545/article/details/104526527

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值