我有str格式的输出
Port Name Intvl In Mbps % In Kpps Out Mbps % Out Kpps
Et7/1 5:00 338.2 3.4% 31 0.0 12.3% 121
我需要确定所有百分比,即 3.4 和 12.3 。 什么是最诡计多端的方式来做同样的事情
使用%find_all 只提供索引,有没有更好的方法来实现这一目标?
答案 0 :(得分:5)
\b\d+(?:\.\d+)?(?=%)
带re.findall
的应该为你做。
print re.findall(r"\b\d+(?:\.\d+)?(?=%)",test_str)
编辑:
如果您想要float
值而不是str
使用
print map(ast.literal_eval,re.findall(r"\b\d+(?:\.\d+)?(?=%)",x))
我们正在使用\b
用于字边界。See Demo