使用 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+$
使用空字符串作为替换。这将匹配一个可选的小数点,后跟尾随零,直到字符串结束。请参阅下面的演示以了解此模式的工作原理。
这个答案假定所有输入总是有一个小数部分。如果没有,那么我们需要添加额外的逻辑。
如果要删除 4 位小数的数字的尾随零,一种选择是使用捕获组并在替换中使用组 1。
^(\d+(?=\.\d{4}$)(?:\.\d*[1-9])?)\.?0+$
部分
^
字符串开头
(
捕获 组 1
\d+
匹配 1+ 个数字
(?=\.\d{4}$)
断言右边是.
和4位数字
(?:\.\d*[1-9])?
可选择匹配数字直到最后一位数字 1-9
)
关闭组 1
\.?0+
匹配可选的 .
和 1 次或多次零
$
字符串结束
删除 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+$
使用空字符串作为替换。这将匹配一个可选的小数点,后跟尾随零,直到字符串结束。请参阅下面的演示以了解此模式的工作原理。
这个答案假定所有输入总是有一个小数部分。如果没有,那么我们需要添加额外的逻辑。
如果要删除 4 位小数的数字的尾随零,一种选择是使用捕获组并在替换中使用组 1。
^(\d+(?=\.\d{4}$)(?:\.\d*[1-9])?)\.?0+$
部分
^
字符串开头(
捕获 组 1\d+
匹配 1+ 个数字(?=\.\d{4}$)
断言右边是.
和4位数字(?:\.\d*[1-9])?
可选择匹配数字直到最后一位数字 1-9
)
关闭组 1\.?0+
匹配可选的.
和 1 次或多次零$
字符串结束