使用正则表达式搜索和替换记事本++选择中的数字



我刚刚了解了正则表达式,这对我来说仍然很困惑。

首先,我在记事本++中有一个包含500k行的文件。大约在第 394900 行是一些需要替换的静态内容。手动完成的工作并不多,但只是为了学习目标,我想通过正则表达式来做到这一点。

这些行包含以下字符串,而 X 是随机数:{x 0.xxxxx xx.xxx}现在我必须替换 .xxxxx 之前每行的第二个数字

简而言之:{x 0.xxxxx xx.xxx} 必须在每行中替换为 {x 8.xxxxx xx.xxx}。

通过正则表达式执行此操作的最简单方法是什么?

使用 d 表示数字:

替换({d )d(.d{5} d{2}.d{3}})

182(第一组,然后是数字8,然后是第二组)。

如果显式量词(例如 d{3} ) 不支持,请改用 d+(即一个或多个数字):

没有显式量词(对于 NPP 版本 <6):

({d )d(.d+ d+.d+})替换为 182

您可以使用基于正面展望的正则表达式,如下所示,

d+(?=.d{5}s)

然后将匹配的数字替换为 8 。仅当数字后跟一个点,然后是一个 5 位数字和一个空格时,它才匹配该数字。

演示

最新更新