转载:http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html

先看代码instance:

 >>> a="123abc456"
>>> import re
>>> 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).group())
123abc456
>>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).groups())
('', 'abc', '')
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups())
('', 'c', '')
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups(1))
('', 'c', '')
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group(0))
123abc456
>>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group())
123abc456

究其因:

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

  • m.group() == m.group(0) == 所有匹配的字符(即匹配正则表达式整体结果)
  • group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
  • m.groups() 返回所有括号匹配的字符,以tuple格式。m.groups() == (m.group(0), m.group(1), ...)

2. 没有匹配成功的,re.search()返回None

3. 当然郑则表达式中没有括号,group(1)肯定不对了。

python正则表达式re 中m.group和m.groups的解释的更多相关文章

  1. 【python】正则中的group()

    来源:http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html 正则表达式中,group()用来提出分组截获的字符串, ...

  2. Python正则表达式处理中的匹配对象是什么?

    老猿才开始学习正则表达式处理时,对于搜索返回的匹配对象这个名词不是很理解,因此在前阶段<第11.3节 Python正则表达式搜索支持函数search.match.fullmatch.findal ...

  3. [Python正则表达式] 字符串中xml标签的匹配

    现在有一个需求,比如给定如下数据: 0-0-0 0:0:0 #### the 68th annual golden globe awards #### the king s speech earns ...

  4. Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...

  5. 第11.25节 Python正则表达式编译re.compile及正则对象使用

    一. 引言 在<第11.2节 Python 正则表达式支持函数概览>介绍了re模块的主要函数,在<第11.3节 Python正则表达式搜索支持函数search.match.fullm ...

  6. python正则表达式中的分组 group

    维基百科:http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C ...

  7. Python: 正则表达式中的group()

    正则表达式中,group()用来提出分组截获的字符串,()用来分组 eg:

  8. python正则表达式模块re:正则表达式常用字符、常用可选标志位、group与groups、match、search、sub、split,findall、compile、特殊字符转义

    本文内容: 正则表达式常用字符. 常用可选标志位. group与groups. match. search. sub. split findall. compile 特殊字符转义 一些现实例子 首发时 ...

  9. Python正则表达式使用过程中的小细节

    今天用Python写了个简单的爬虫程序,抓取虎扑篮球(nba.hupu.com)的首页内容,代码如下: #coding:gb2312 import urllib2, re webpage = urll ...

随机推荐

  1. Travis CI Could not find or load main class org.gradle.wrapper.GradleWrapperMain 错误

    问题 在 Travis CI 编译的时候出现 Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain ...

  2. CF1213E Two Small Strings

    题目链接 问题分析 由于三个字母是等价的,所以大致可以分为如下几种情况: aa, ab ab, ac ab, ba ab, bc 不难发现,第\(3\)中情况可能造成无解(\(n>1\)时),而 ...

  3. CentOS版本禁用Ctrl+Alt+Del重启功能

    1  禁用Ctrl+Alt+Del重启功能(不重启系统的前提条件) 1.1  CentOS 6 ##查看/etc/inittab确认Ctrl+Alt+Del相关配置文件 cat /etc/initta ...

  4. Java使用阿里云OSS对象存储上传图片

    原 Java使用阿里云OSS对象存储上传图片 2017年03月27日 10:47:28 陌上桑花开花 阅读数 26804更多 分类专栏: 工作案例总结 版权声明:本文为博主原创文章,遵循CC 4.0 ...

  5. sklearn.model_selection Part 2: Model validation

    1. check_cv() def check_cv(cv=3, y=None, classifier=False): if cv is None: cv = 3 if isinstance(cv, ...

  6. 13.多线程设计模式 - Future模式

    多线程设计模式 - Future模式 并发设计模式属于设计优化的一部分,它对于一些常用的多线程结构的总结和抽象.与串行相比并行程序结构通常较为复杂,因此合理的使用并行模式在多线程并发中更具有意义. 1 ...

  7. POI 生成excel

    POI生成原生Excel-工具类     https://www.jianshu.com/p/2dfe7fe7d02e JAVA poi 帮助类  https://www.cnblogs.com/Ca ...

  8. Demo:servlet实现图片的上传

    一个简单的servlet例子,实现图片的上传功能,上传的图片给 ?HttpServletResponse 对象 public class BackGroundLogoServlet extends H ...

  9. JavaWeb之上传与下载

    文件上传概述: 1,文件上传对页面的要求: 必须使用表单,而不能是超链接 表单的method必须是post 表单的enctype必须是multipart/form-data 在表单中添加file表单字 ...

  10. 使用C#语言,将DataTable 转换成域模型

    DataTable dt = SqlHelper.Query(strQuery); ) * size).Take(pagesize); List<Model> listData = new ...