带d的先行断言

2024-05-23 21:41:59 发布

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

我需要从表示浮点值的字符串中删除尾随零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可能有一个更好的表达。在点之前去掉零不是我的目标。你知道吗

我也很感兴趣的是,能看到一些关于不同数量的零的通解,而不仅仅是两个。你知道吗


Tags: 字符串re目标数量情况数字浮点xx
2条回答

你想要向后看,而不是向前看。在当前表达式中,\.[0-9]试图与0同时匹配,这是永远不会发生的。你知道吗

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

您应该使用lookback断言而不是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

相关问题 更多 >