我需要从字符串中删除尾随零表示浮点值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
可能更好的一个表达式存在。在点不是我的目标之前删除零。
同样有趣的是我可以看到一些针对不同数量的零的一般解决方案,而不仅仅是两个。
答案 0 :(得分:4)
你应该使用lookbehind断言而不是先行:
>>> 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
答案 1 :(得分:3)
你想要后卫,而不是前瞻。在您当前的表达式\.[0-9]
尝试与0
同时匹配,这将永远不会发生。
尝试:"(?<=\.[0-9])0"