从字符串Python中提取浮点数

时间:2019-07-09 14:42:44

标签: python int extract

我有一个看起来像这样的字符串:

'< 5s' or '< 0.5s'

我正在尝试从字符串中提取“持续时间”。我已经有这个了:

a = '< 5s'
b = int(list(filter(str.isdigit, a))[0])
print(b)

但是如果我使用'< 0.5s',它将返回我0。我如何在,中加上数字?

4 个答案:

答案 0 :(得分:2)

使用简单的正则表达式:

import re

s = '< 0.5s'
dur = re.search(r'-?\d+(\.\d+)?', s).group()
print(dur)   # 0.5

答案 1 :(得分:2)

如果可以确定字符串始终按照示例中所示的格式进行格式化,那么简单的b = float(a[2:-1])应该可以解决问题。

答案 2 :(得分:1)

import re
b = re.sub("[^\d\.]", "", a)

答案 3 :(得分:0)

您可以使用regex,也许是这样的:

#!/usr/bin/python3
import re
inp="< 0.5s 5s -12z34 -6.7s"
for i in re.findall("-?\d+\.\d+|-?\d+", inp):
    print(i)