>>> print re.compile(r'^.*[.](?P<ext>tar.gz|tar.bz2|w+)$').match('a.tar.gz').group('ext')gz>>> print re.compile(r'^.*?[.](?P<ext>tar.gz|tar.bz2|w+)$').match('a.tar.gz').group('ext')tar.gz>>>?运算符试图找到最小匹配项,所以也不要使用。*来代替“ * .tar”。查找允许匹配.tar.gz的最小匹配。

>>> print re.compile(r'^.*[.](?P<ext>tar.gz|tar.bz2|w+)$').match('a.tar.gz').group('ext')gz>>> print re.compile(r'^.*?[.](?P<ext>tar.gz|tar.bz2|w+)$').match('a.tar.gz').group('ext')tar.gz>>>?运算符试图找到最小匹配项,所以也不要使用。*来代替“ * .tar”。查找允许匹配.tar.gz的最小匹配。