Python Re Module如何在此考试中发挥作用?

knd*_*knd 4 python regex

匹配此正则表达式的过程是什么?我不明白为什么显式组是'c'.这段代码取自Python Re Module Doc.

>>> m = re.match("([abc])+", "abc")
>>> m.group()
'abc'
>>> m.groups()
('c',)
Run Code Online (Sandbox Code Playgroud)

那么,怎么样:

>>> m = re.match("([abc]+)", "abc")
>>> m.group()
'abc'
>>> m.groups()
('abc',)
Run Code Online (Sandbox Code Playgroud)

和:

>>> m = re.match("([abc])", "abc")
>>> m.group()
'a'
>>> m.groups()
('a',)
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*nts 6

re.match("([abc])+", "abc")
Run Code Online (Sandbox Code Playgroud)

匹配由a,b或c组成的组.最后的组是在字符类中找到的最后一个字符,因为匹配是贪婪的,所以最后是最后一个匹配的字符c.

m = re.match("([abc]+)", "abc")
Run Code Online (Sandbox Code Playgroud)

匹配包含a,b或c的一个或多个连续出现的组.最后的匹配组是a,b或c中最大的连续组.

re.match("([abc])", "abc")
Run Code Online (Sandbox Code Playgroud)

匹配a,b或c.匹配组将始终是字符串开头的第一个匹配字符.