Python 学习笔记(六)正则扩展标记

1. (?:...) 不想保存括号里匹配项时使用

The (?:...) notation should be fairly popular; with it, you can group
parts of a regex, but it does not save them for future retrieval or use.

>>> re.findall(r'http://(?:\w+\.)*(\w+\.com)',
       'http://google.com http://www.google.com http://code.google.com')
['google.com', 'google.com', 'google.com']

2.(?P<name>) and (?P=name)

can use the (?P<name>) and (?P=name) notations together. The former
saves matches by using a name identifier rather than using increasing
numbers, starting at one and going through N, which are then retrieved
later by using \1, \2, ... \N.

>>> re.search(r'\((?P<areacode>\d{3})\) (?P<prefix>\d{3})-(?:\d{4})',
      '(800) 555-1212').groupdict()
{'areacode': '800', 'prefix': '555'}

3.findall() and finditer();

>>> re.findall(r'\w+(?= van Rossum)',
       '''
Guido van Rossum
Tim Peters
Alex Martelli
Just van Rossum
''')
['Guido', 'Just']
>>> bool(re.search(r'(?:(x)|y)(?(1)y|x)', 'xy'))
True
>>> bool(re.search(r'(?:(x)|y)(?(1)y|x)', 'yx'))
True

 

转载于:https://www.cnblogs.com/zyf7630/p/3361177.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值