Skip to main content
 首页 » 编程设计

python之带点的先行断言

2025年05月04日14shanyou

我需要从表示浮点值的字符串中删除尾随零 x.xx

我尝试使用 re.sub但没有效果

re.sub("(?=\.[0-9])0", "", "1.23, 2.50, 2.00, 2.30, 5.03") 

更新

在我的特殊情况下,点后只有两位数字。我需要删除两个零。在 Ashwini Chaudhary 和 Porges 的帮助下,我目前使用 \.00|(?<=\.[0-9])0可能存在更好的表达方式。在点之前删除零不是我的目标。

如果我看到一些针对不同数量的零的通用解决方案,而不仅仅是两个,我也会很感兴趣。

请您参考如下方法:

你应该使用 lookbehind 断言而不是 lookahead:

>>> re.sub("(?<=\.[0-9])0", "", "1.23, 2.50, 2.00, 2.30, 5.03") 
'1.23, 2.5, 2.0, 2.3, 5.03' 

(?<=\.[0-9])0 

Regular expression visualization

Debuggex Demo