zoukankan      html  css  js  c++  java
  • python正则表达式re 中m.group和m.groups的解释

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

    先看代码instance:

     1 >>> a="123abc456"
     2 >>> import re
     3 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))
     4 123abc456
     5 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1))
     6 123
     7 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2))
     8 abc
     9 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))
    10 456
    11 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group())
    12 123abc456
    13 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).groups())
    14 ('123', 'abc', '456')
    15 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups())
    16 ('3', 'c', '456')
    17 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups(1))
    18 ('3', 'c', '456')
    19 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group(0))
    20 123abc456
    21 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group())
    22 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)肯定不对了。

  • 相关阅读:
    百度ECharts数据绑定诀窍
    SQL操作Json数据
    c# 如何得到一个字符的ASCII码
    Sql数据库收缩 语句特别快
    Hive中 使用 Round() 的坑
    [转]Hive 数据类型
    [转] Hive函数大全
    使用Hive Rest API 连接HDInsight
    Hive动态分区 参数配置及语法
    Js的引用赋值与传值赋值
  • 原文地址:https://www.cnblogs.com/3me-linux/p/6774674.html
Copyright © 2011-2022 走看看