|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- >>> m = re.match("([abc])+", "abc")
- >>> m.groups()
- ('c',)
- >>> m.group()
- 'abc'
复制代码
为什么m.groups()会是('c',),不是很理解哦,m.groups(1)、m.groups(2)、m.groups(3)。。。。。。。。。m.groups(100)都是输出('c',),这是为什么?????
m.group()为啥又是输出'abc'
在正则表达式中,括号被用来定义"捕获组"。这意味着括号中的内容会被单独捕获并可以单独访问。在你的例子中,正则表达式是 "([abc])+",这意味着它会匹配一个或多个 'a'、'b' 或 'c'。
然而,当你使用 "+" 重复捕获组时,只有最后一个匹配的元素会被保留。在你的例子中,"abc" 都匹配了,但是由于 "+" 的存在,只有最后一个匹配的 'c' 被保留下来。这就是为什么 m.groups() 返回 ('c',) 的原因。
换句话说,"捕获"是指正则表达式匹配并保留特定子字符串的过程。在这种情况下,只有 'c' 被捕获,因为它是最后一个匹配的元素。
|
|