Python group()小结

发布时间:2019-08-30 08:40:35编辑:auto阅读(2806)

    今天看到group()方法,有点疑惑,自己动手了解了一下。

    举例如下:

    import re
    a = "123abc456"
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)   #123abc456,返回整体
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).groups()   #['123','abc','456']
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1)   #123
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2)   #abc
    print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3)   #456

    一开始我理解为group(n)(n=1,2,3)会根据括号里的正则表达式进行匹配,每次都是从字符串a的起始位置开始,会自动匹配到‘123’,‘abc’,‘123’。但是结果让我感到不对,后来想了想,应该是search()里的三个正则表达式是有顺序的,只能依次执行,不是每次都从开始执行。这样就能解释通过了。

关键字