Python正则expression式 – 如何从通配符expression式捕获多个组?
我有一个Python正则expression式,其中包含一个可能出现零次或多次的组 – 但是当我检索后面的组列表时,只有最后一个出现。 例:
re.search("(\w)*", "abcdefg").groups
()
这返回列表('g',)
我需要它返回(a,b,c,d,e,f,g,)
那可能吗? 我该怎么做?
除Douglas Leeder的解决scheme之外 ,这里是解释:
在正则expression式中,组计数是固定的。 将一个量词放在一个组之后并不会增加组数(设想所有其他组索引都会因为一个组的匹配而增加)。
具有量词的组是在需要多次匹配时使复杂子expression式成为primefaces的方式。 正则expression式引擎只能将最后一个匹配保存到组中。 简而言之:没有办法用一个单一的“手无寸铁的”正则expression式来实现你想要的,你必须find另一种方式。
re.findall(r"\w","abcdefg")