zoukankan      html  css  js  c++  java
  • Group(), Groups(),& Groupdict() 用法

    group()

    返回一个或多个匹配的字串。如果只有一个参数,结果只有单个字符串;如果有多个参数,结果是一个元组,元组里每一项对应一个参数。没有参数,group1默认是0(整个匹配串被返回)。如果groupN参数是0,对应的返回值是整个匹配串;如果它属于[1,99],返回对应的一项括号分隔的群。如果参数是负数或大于模式串中定义的群数,IndexError异常会被抛出。如果模式串没有任何匹配,group返回None;如果模式串多次匹配,group将返回最后一次匹配。

    >>> m = re.match(r"(w+) (w+)", "Isaac Newton, physicist")
    >>> m.group(0)       # The entire match 整个匹配
    'Isaac Newton'
    >>> m.group(1)       # The first parenthesized subgroup. 第一个括号分隔的子群
    'Isaac'
    >>> m.group(2)       # The second parenthesized subgroup. 第二个括号分隔的子群
    'Newton'
    >>> m.group(1, 2)    # Multiple arguments give us a tuple. 多个参数给我们一个元组
    ('Isaac', 'Newton')
    In [2]: m = re.match(r"(..)+", "a1b2c3")  # 三次匹配
    In [3]: m.group(0)                        # 返回整个匹配串
    Out[3]: 'a1b2c3'                          
    In [4]: m.group(1)                        # 只返回最后一个匹配 
    Out[4]: 'c3'
    In [5]: m.group(2)
    ---------------------------------------------------------------------------
    IndexError                                Traceback (most recent call last)
    <ipython-input-5-9b74dc8a1297> in <module>()
    ----> 1 m.group(2)
    IndexError: no such group

    groups()

    它返回一个包含所有匹配子群的元组。

    >>> m = re.match(r"(d+).(d+)", "24.1632")
    >>> m.groups()
    ('24', '1632')
    

    groupdict()

    它返回一个字典,包含所有经命名的匹配子群,键值是子群名。

    >>> m = re.match(r'(?P<user>w+)@(?P<website>w+).(?P<extension>w+)','myname@hackerrank.com')
    >>> m.groupdict()
    {'website': 'hackerrank', 'user': 'myname', 'extension': 'com'}

      

  • 相关阅读:
    Java通过JNI调用C/C++
    Using HTML5 audio and video
    vmstat输出项解释
    uva 11237
    NN优化方法对照:梯度下降、随机梯度下降和批量梯度下降
    认识与学习bash
    系统崩溃,大圣归来
    连载《一个程序员的生命周期》-25.到工业现场学习业务知识引发的思考
    ZOJ问题(2010浙江大学研究生复试上机题目[找规律] hdoj 3788)
    UIView的几个枚举定义
  • 原文地址:https://www.cnblogs.com/joneylulu/p/10358952.html
Copyright © 2011-2022 走看看