m = re.match('([cab])+',"cacb") if m: print m.groups()
我理解是这样的,+ 可以理解为以下方式
+
import re m = re.match('([cab])([cab])([cab])([cab])', "cacb") if m: print m.groups()
由于 () 会不断覆盖前面的值,因此,在原式中得出的值一定是最后一个 b
()
再举例,
import re m = re.match('([cab])+b', "cacb") if m: print m.groups()
得出的结果是 c
➜ tmp cat tmp.py import re m = re.match('([cab])+',"cacb") if m: print m.groups() ➜ tmp python tmp.py ('b',)
具体原因有点奇怪,没想通