我必须从几个字符串中的每个字符串中提取一个数字(测量的时间值)。我怎样才能优雅地做到这一点?所有数字均为正数,且最多保留两位小数。 (例如:2.3/ 40.09/ 101.4 - E 表示法中没有数字)。我正在寻找的代码应该执行类似于以下伪代码的操作:
>>> "It took 2.3 seconds".strip(everything but ".1234567890")
2.3
使用正则表达式选择数字,而不是剥离:
import re
numbers = re.compile(r'\d+(?:\.\d+)?')
numbers.findall("It took 2.3 seconds")
Demo:
>>> import re
>>> numbers = re.compile(r'\d+(?:\.\d+)?')
>>> numbers.findall("It took 2.3 seconds")
['2.3']
这将返回所有匹配项的列表;这也可以让你在字符串中找到多个数字:
>>> numbers.findall("It took between 2.3 and 42.31 seconds")
['2.3', '42.31']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)