只有一组时,正则表达式中的组如何工作?

时间:2018-08-08 17:51:41

标签: regex python-3.x

我做了以下事情:

UIPercentDrivenInteractiveTransition

以下给出了答案“ a”:

a = re.compile("(ab*?)")
b = a.search("abbbbbbb")

令人惊讶的是,这也给了我答案“ a”:

b.group(0)

执行此操作时,我得到一个仅包含('a',)的元组:

b.group(1)

如果只有一组,为什么对索引0和1给出重复的值?它不应该引发IndexError为1吗?

1 个答案:

答案 0 :(得分:2)

help(b.group)

Help on built-in function group:

group(...) method of _sre.SRE_Match instance
    group([group1, ...]) -> str or tuple.
    Return subgroup(s) of the match by indices or names.
    For 0 returns the entire match.

正则表达式开始将捕获组编号为1。尝试访问组0将为您提供整个匹配项(所有组),但是由于表达式只有一组,因此输出是相同的。

示例:

>>> regex = re.compile("(first) (second)")
>>> results = regex.search("first second")
>>> results.group(1)
'first'
>>> results.group(2)
'second'
>>> results.group(0)
'first second'