python 正则表达式 groups和group有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 正则表达式 groups和group有啥区别?相关的知识,希望对你有一定的参考价值。

m=re.match("([abc])+","abc")printm.groups()返回的只有('c',)而不是abc而printm.group()就能返回整个的字符串他们到底有什么区别呢网上的解释我看的不是太明白... m = re.match("([abc])+", "abc") print m.groups() 返回的只有('c',) 而不是 abc 而 print m.group() 就能返回整个的字符串 他们到底有什么区别呢 网上的解释我看的不是太明白 展开

参考技术A group和groups是两个不同的函数。
一般,m.group(N)
返回第N组括号匹配的字符。
而m.group()
==
m.group(0)
==
所有匹配的字符,与括号无关,这个是API规定的。
m.groups()
返回所有括号匹配的字符,以tuple格式。
m.groups()
==
(m.group(0),
m.group(1),
...)
正则表达式中,group()用来提取分组截获的字符串,()用来分组。
组是通过
"("

")"
元字符来标识的。
"("

")"
有很多在数学表达式中相同的意思;它们一起把在它们里面的表达式组成一组。举个例子,你可以用重复限制符,象
*,
+, ?,

m,n,来重复组里的内容,比如说(ab)*
将匹配零或更多个重复的
"ab"。
如果不引入括号,整个个表达式作为一个组,是group(0)
对于题目中的例子:
m
=
re.match("([abc])+",
"abc")
+号在括号外面。括号最多匹配到一个字符,要么是a,
要么是c,这个python引擎匹配的是末尾的c。
而m.group()
==
m.group(0)
这个返回的是整个匹配的字符串"abc".

正则表达式中 group groups区别

先看代码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)肯定不对了。

以上是关于python 正则表达式 groups和group有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式 groups和group有啥区别?

python正则表达式02--findall()和search()方法区别,group()方法

python正则中的group()

python --- 正则表达式

Python正则表达式

python常用的正则表达式,持续更新<<