去除+
;你的模式匹配all出现次数,但该组只能捕获一次出现情况,您不能以这种方式重复捕获组:
>>> import re
>>> re.findall('(\(\w+,\w+\),?)+', '(a,b),(c,d),(e,f)')
['(e,f)']
>>> re.findall('\(\w+,\w+\),?', '(a,b),(c,d),(e,f)')
['(a,b),', '(c,d),', '(e,f)']
我在哪里替换了\d
with \w
为了演示,并删除了逗号周围多余的非捕获组。最外面的捕获组也是多余的;没有它,re.findall()
返回整个匹配的表达式。