正则表达式在python中分割%年龄和值

aqo*_*oon 0 python regex

您好我是python和regex的新手.我有一个大的CSV文件,其中%age composition包含类似的字段,其中包含以下值:

'34% passed 23% failed 46% deferred'

如何拆分此字符串以便获取字典对象:

{'passed': 34, 'failed': 23, 'deferred': 46} 每排?

我试过这个:

for line in csv_lines:
    for match in re.findall('[\d\s%%]*\s', line)
Run Code Online (Sandbox Code Playgroud)

但这只取%年龄值

ale*_*cxe 5

如果你仍然想要使用正则表达式,你可以使用这个:

(\w+)%\s(\w+)
Run Code Online (Sandbox Code Playgroud)

哪个匹配一个或多个字母数字字符(替代:),[0-9a-zA-Z_]+后跟%符号,空格字符和一个或多个字母数字字符.括号帮助捕获适当的字符集.

演示:

>>> import re
>>> s = '34% passed 23% failed 46% deferred'
>>> pattern = re.compile(r'(\w+)%\s(\w+)')
>>> {value: key for key, value in pattern.findall(s)}
{'failed': '23', 'passed': '34', 'deferred': '46'}
Run Code Online (Sandbox Code Playgroud)