如何拆分没有分隔符但具有固定小数位数的字符串 - python

时间:2016-02-10 08:51:41

标签: python

将以下字符串拆分为6个浮点值的最佳方法是什么。小数点总是六位。

x='  2C   6s         0.043315-143.954801 17.872676 31.277358-18.149649114.553363'

输出应为:

y=[0.043315, -143.954801, 17.872676, 31.277358, 18.149649, 114.553363]

2 个答案:

答案 0 :(得分:4)

假设您希望获得-18.149649而不是18.149649,因为这样会保持一致,我建议将regex.findall() function结合使用,如下所示:

import re

regex = '(-?[0-9]{1,}\.[0-9]{6})'

x = '  2C   6s         0.043315-143.954801 17.872676 31.277358-18.149649114.553363'

out = re.findall(regex, x)

print(out)

,并提供:

['0.043315', '-143.954801', '17.872676', '31.277358', '-18.149649', '114.553363']

由于评论而更新:

您可以将[0-9]替换为与\d相同的\d,因为INSERT into MESSAGES(from_user,to_user,time_sent,message) values('aaa','bbb',10.02.2016, 10:59,' ccc ') 与数字(数字)匹配,如here所示。

答案 1 :(得分:2)

这应该可以解决问题。

re.findall(r'\-?[0-9]+\.[0-9]{6}', string)