zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    工厂方法模式
    命名空间的规划
    Download Manager
    Intent(二)
    Intent (一)
    Fragment (一)
    修改环境变量需不需要重启电脑
    Spring mvc和SSH如何取舍?
    ORA-01795: 列表中的最大表达式数为1000的解决方法详解
    apache与tomcate的区别
  • 原文地址:https://www.cnblogs.com/zyf7630/p/3361177.html
Copyright © 2011-2022 走看看