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
  • 相关阅读:
    从原生web组件到框架组件源码(二)
    从原生web组件到框架组件源码(一)
    拖拽滚动视图(一)
    SVG研究之路(一)下
    运算符
    编码
    格式化输出
    循环语句
    条件语句
    Python基础
  • 原文地址:https://www.cnblogs.com/zyf7630/p/3361177.html
Copyright © 2011-2022 走看看