Python正则表达式多个匹配组

时间:2014-04-23 08:59:50

标签: python regex

我正在使用一个小工具在Windows下查找文件类型。

TrID/32 - File Identifier v2.10 - (C) 2003-11 
By M.Pontello Definitions found:  5295  Analyzing... 

Collecting data from file: april_error.wmv

94.1% (.WMV/WMA) Windows Media (generic) (16018/6)
 5.8% (.CAT) Microsoft Security Catalog (1000/1)

在Python中,我如何捕获(.WMV/WMA)因为我目前得到一个错误的匹配组。 例如,re.search('\((.*?)\)', stdout).group(1)会返回'C'

提前致谢。

2 个答案:

答案 0 :(得分:2)

请尝试使用findall

a = re.findall('\((.*?)\)', stdout)

>>> print a
['C','.WMV/WMA','generic','16018/6','.CAT','1000/1']

>>> print a[1]
.WMV/WMA

或者@tobias_k建议,执行以下操作仅捕获文件扩展名匹配:

a = re.findall('\((\..*?)\)', stdout)

>>> print a
['.WMV/WMA', '.CAT']

答案 1 :(得分:1)

根据您的上述评论,这就是您所需要的:

match = re.search(r"% \([a-z.]+/[a-z.]+\)", subject, re.IGNORECASE)