Python:用字符串中的整数替换“错误”的浮点值

2024-03-29 15:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用整数替换字符串(1.0、2.0等)中的所有无用浮点数。所以我将一个类似"15.0+abc-3"的字符串转换为"15+abc-3"。 你知道怎么做吗?在

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


Tags: 字符串整数abc浮点数试图用
2条回答
(?<=\d)\.0+\b

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

参见演示。在

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

^{pr2}$

您可以使用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!在

相关问题 更多 >