如何使用正则表达式将不同数量的零替换为相同数量的空格?

人气:975 发布:2022-10-16 标签: regex replace fixed-length-record notepad++

问题描述

我正在处理固定长度的字段数据,我需要将一系列数字的小数位缩短到只有两个小数位。它只是小数点后的零,所以编写一个将在其上触发的正则表达式非常容易。问题是,我需要用空格替换多余的零。我知道我可以保存子表达式并在替换中调用它,但有没有一种方法可以计算删除的零的数量并调用它?我只是在记事本++的替换窗口中使用正则表达式。

推荐答案

我找到了一些可以在这里工作的东西。

搜索字符串:([.]00[ ]*)0

替换字符串:1(1后面有一个空格)

它所做的是查找.00,后跟任意数量的空格,最后是一个零。然后将其替换为.00和空格,后跟空格。每次运行时,它都会用空格替换多出来的一个零。它是有效的,但有人能想到只需要运行一次的东西吗?这在本例中很管用,但我也曾有过希望regex也算数的时候。

414