使用 REPLACE 正则表达式删除尾随零

Removing trailing zeros using REPLACE regex

删除 4 位小数的数字的尾随零

示例预期输出:

1.7500 -> 1.75

1.1010 -> 1.101

1.0000 -> 1

我是 REGEX 的新手,所以我先尝试了这个但没有用:

REPLACE ALL OCCURRENCES OF REGEX '^\.[0]\d{0,3}' IN lv_rate WITH space.

需要帮助才能使用正确的正则表达式。谢谢!

编辑SHIFT lv_rate RIGHT DELETING TRAILING '0' 不是一个选项。

尝试替换为以下正则表达式模式:

\.?0+$

使用空字符串作为替换。这将匹配一个可选的小数点,后跟尾随零,直到字符串结束。请参阅下面的演示以了解此模式的工作原理。

Demo

这个答案假定所有输入总是有一个小数部分。如果没有,那么我们需要添加额外的逻辑。

如果要删除 4 位小数的数字的尾随零,一种选择是使用捕获组并在替换中使用组 1。

^(\d+(?=\.\d{4}$)(?:\.\d*[1-9])?)\.?0+$

部分

  • ^ 字符串开头
  • ( 捕获 组 1
    • \d+ 匹配 1+ 个数字
    • (?=\.\d{4}$)断言右边是.和4位数字
    • (?:\.\d*[1-9])? 可选择匹配数字直到最后一位数字 1-9
  • ) 关闭组 1
  • \.?0+ 匹配可选的 . 和 1 次或多次零
  • $ 字符串结束

Regex demo