【发布时间】:2018-12-26 04:03:14
【问题描述】:
我有以下字符串:
s = " 3434 garbage workorders: 138 waiting, 2 running, 3 failed, 134 completed"
我想解析“工单”之后的状态和计数。我尝试了以下正则表达式:
r = r"workorders:( (\d+) (\w+),?)*"
但这只会返回最后一组。如何返回所有组?
附言我知道我可以在 python 中做到这一点,但想知道是否有纯正则表达式解决方案
>>> s = " 3434 garbage workorders: 138 waiting, 2 running, 3 failed, 134 completed"
>>> r = r"workorders:( (\d+) (\w+),?)*"
>>> re.findall(r, s)
[(' 134 completed', '134', 'completed')]
>>>
输出应该接近
[('138', 'waiting'), ('2', 'running'), ('3', 'failed'), ('134', 'completed')]
【问题讨论】:
-
您是如何使用该正则表达式的 - 例如,您是否使用过
re.findall或其他内容? -
@JonClements 是的
-
138 waiting, 2 running, 3 failed, 134 completed应该是输出?每个都在单独的组中? -
@GarbageCollector 是的,这样我就可以映射“等待”-> 138 等