正则表达式与组'()'之间的区别?

时间:2015-11-22 17:54:27

标签: python regex

有两种不同的代码会产生两种不同的结果,但我不知道这些差异是如何产生的。

>>>re.findall('[a-z]+','abc')
['abc']

这个与小组:

>>> re.findall('([a-z])+','abc')
['c']

为什么第二个代码会产生字符c

1 个答案:

答案 0 :(得分:0)

在您的上一个正则表达式模式(([a-z])+)中,您正在重复capturing group())。这样做只会返回最后一次迭代。所以你得到最后一个字母,即c

但是在您的第一个模式([a-z]+)中,您正在重复character class[]),这与捕获组的行为不同。它返回所有迭代。