2024-09-21 07:54:04 发布
网友
我要解析的字符串是“{平均:12.1km/ltr}". 我想从这个字符串中提取12.1。我知道的唯一方法是使用split(“:”)和split(“km/ltr”)左右,但这些似乎没有用。我想使用类似scanf的方法来提取12.1,但是在python文档中,它表明使用正则表达式比类似scanf的函数更好。我认为普通快递不能用于提取。我应该如何使用re提取这个?在
我想您可以简单地使用以下命令从字符串中提取数字部分。在
这是样品
>>> re.findall("\d+\.?\d*|\.\d+",st) >>> st = "{average:12.1km/ltr}" >>> re.findall("\d+\.?\d*|\.\d+",st) ['12.1'] >>> st = "{average:12km/ltr}" >>> re.findall("\d+\.?\d*|\.\d+",st) ['12'] >>> st = "{average:.5km/ltr}" >>> re.findall("\d+\.?\d*|\.\d+",st) ['.5'] >>> st = "{average:12.km/ltr}" >>> re.findall("\d+\.?\d*|\.\d+",st) ['12.'] >>> st = " {max:26.9kgm@6100rpm}" >>> re.findall("\d+\.?\d*|\.\d+",st) ['26.9', '6100']
试试这个,假设这个数字可以没有点。在
import re re.findall('[0-9]+(\.[0-9]+)?', str)
只要strip所有你不想要的字符-不需要正则表达式(尽管我喜欢它们…)
strip
>>> import string >>> s = "{average:12.1km/ltr}" >>> s2 = s.strip(string.ascii_letters + "{}:/") >>> print s2 12.1 >>> number = float(s2) >>> print number 12.1
我想您可以简单地使用以下命令从字符串中提取数字部分。在
这是样品
试试这个,假设这个数字可以没有点。在
只要
strip
所有你不想要的字符-不需要正则表达式(尽管我喜欢它们…)相关问题 更多 >
编程相关推荐