+ -
当前位置:首页 → 问答吧 → 一个关于Python正则匹配的问题

一个关于Python正则匹配的问题

时间:2011-03-08

来源:互联网

大家好。

以下代码:

import re
p = re.compile("([abc])+")
m = p.match("abc")

print(m.group(1))

输出 'c'

而且一共的匹配结果有两个,分别是 'abc',  'c'

请问为什么是c?

为什么只有两个?

谢谢各位指教。

作者: klzwj1988   发布时间: 2011-03-08

p.group(),或p.group(0),是整个正则表达式的匹配内容,因此是abc;
p.group(1),是第一个捕获组的内容,即([abc])的内容。由于它用了+,即多次捕获并匹配,因此只保留最后一次的捕获内容,即'c'。

作者: zhasm   发布时间: 2011-03-09

了解下什么是贪婪匹配和非贪婪匹配,默认状态下,python的正则是贪婪匹配的

作者: mulangguo   发布时间: 2011-03-09

热门下载

更多