我有一个看起来像这样的字符串:
'< 5s' or '< 0.5s'
我正在尝试从字符串中提取“持续时间”。我已经有这个了:
a = '< 5s'
b = int(list(filter(str.isdigit, a))[0])
print(b)
但是如果我使用'< 0.5s'
,它将返回我0
。我如何在,
中加上数字?
答案 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)