Python:用字符串中的整数替换"wrong"浮点数



我正在尝试用整数替换字符串(1.0、2.0 等)中所有无用的浮点数。所以我会把像"15.0+abc-3"这样的绳子变成"15+abc-3".你知道一种方法吗?

我希望你理解我的想法。如果你不随意问。

您可以使用re.sub

>>> s="15.0+abc-3"
>>> 
>>> import re
>>> re.sub(r'b(d+).0+b',r'1',s)
'15+abc-3'
>>> s="15.0000+abc-333.0+er1102.05"
>>> re.sub(r'b(d+).0+b',r'1',s)
'15+abc-333+er1102.05'

d+将匹配长度为 1 或更大的任何数字,并且在sub函数中(d+).0将匹配无用的小数零的数字。该数字将替换为第一组1即您的数字(在捕获组 (d+) 内)。

b是词边界使您的正则表达式与某些数字不匹配,例如 1102.05

(?<=d).0+b

您可以简单地使用它并通过re.sub empty string替换。

请参阅演示。

https://regex101.com/r/hI0qP0/22

import re
p = re.compile(r'(?<=d).0+b')
test_str = "15.0+abc-3"
subst = ""
result = re.sub(p, subst, test_str)

相关内容

  • 没有找到相关文章

最新更新