[]后跟()正则表达式改变python

时间:2017-09-08 13:06:17

标签: python regex

我的正则表达式表达式为re.findall("[2]*(.)","b = 2 + a*10");

输出['b', ' ', '=', ' ', ' ', '+', ' ', 'a', '*', '1', '0']

但是从我可以推断的表达式来看,它应该给出所有字符串以o或更多次2开始后跟任何东西,这应该包括所有字符,包括2!但是输出中没有2个?它实际上省略了[]中的字符,我在用任何其他字符替换2后得出结论但是无法理解它为什么会发生?为什么[]后跟()省略[]中的字符。

1 个答案:

答案 0 :(得分:2)

阅读re.findall的文档:

  

如果模式中存在一个或多个组,则返回a   小组名单;如果模式,这将是一个元组列表   有不止一个小组。

因此,当您在模式中加入(.)时,re.findall将返回该组的内容。