gpt4 book ai didi

python - Python正则表达式中的groups()方法

转载 作者:太空狗 更新时间:2023-10-29 17:45:28 24 4
gpt4 key购买 nike

我正在学习 Python 中的正则表达式,但我在理解函数 groups() 时遇到问题。

>>> m = re.match("([abc])+", "abc")

这里我定义了类[abc],据我所知,它表示字符a 到c 中的任何一个。它是在一个组内定义的,+ 号表示我们至少需要一个这样的组。所以我执行以下行,结果是可以理解的:

>>> m.group()
'abc'
>>> m.group(0)
'abc'

我明白为什么会这样。主组的索引是 0,'abc' 匹配我们定义的类。到目前为止一切顺利,但我不明白为什么以下几行会按照它们的方式执行:

>>> m.group(1)
'c'
>>> m.groups()
('c',)

什么是group(1),我这里只定义了一个group,为什么groups函数里面只有字符'c'?它不应该返回一个包含所有组的元组吗?我想它至少会包含“abc”。

最佳答案

re详情请咨询docs .在你的情况下:

group(0)代表所有匹配的字符串,因此abc,也就是3组abc

group(i)代表第i组,并引用文档

If a group matches multiple times, only the last match is accessible

因此 group(1) 代表最后一场比赛,c

你的 + 被解释为组重复,如果你想在组内重复 [abc] ,将 + 移到括号中:

>>> re.match("([abc])", "abc").groups()
('a',)
>>> re.match("([abc]+)", "abc").groups()
('abc',)

关于python - Python正则表达式中的groups()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com