提取字符串中的%出现次数

时间:2015-10-20 14:47:12

标签: python regex

我有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 只提供索引,有没有更好的方法来实现这一目标?

1 个答案:

答案 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