菜比之路

走菜比的路,让大牛说去吧
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

【python】正则表达式-group和groups的区别

Posted on 2015-12-02 15:58  毕加索的ma  阅读(1594)  评论(0编辑  收藏  举报
__author__ = 'paul'
import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group()   #123abc456
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)  #123abc456
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
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).groups()  #('123', 'abc', '456')

  上面正则表达式中的三组括号把匹配结果分成三组

  •  group() 同group(0)就是匹配正则表达式整体结果
  •  group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
  • groups()是把所有匹配出来的分组加入元组中
__author__ = 'paul'
import re
a = "123abc456"
print re.search("[0-9]*[a-z]*[0-9]*",a).group()   #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()  #()

 当然正则表达式中没有括号分组,group(1)和groups肯定不对了。