正则表达式将数字更改为下一行

时间:2017-12-06 22:13:15

标签: regex notepad++

我试图想出如何在我的文件中实现一个想法,我的想法是按顺序将数字更改为下一个,所以:

  • 0到1
  • 1至2
  • 3到4等等。

这可以通过查找和替换框轻松完成,但问题是如果我开始查找和替换,我刚刚增加的数字将再次更改,我知道这有点没有意义,但我需要一个正则表达式将文件中的所有数字更改为行

中的下一个数字

所以,让我们说一条线有一个0,我将它改为1,当我找到并替换1到2时,我需要它保持1到1而不是2,我不会'我知道如果我自己解释,请任何人帮忙

实施例

Order66
fight01
fly45

我需要

Order77
Flight12
fly56

如果我通过查找和替换手动更改它们,它们会因为我不断查找和替换而变得不同,这就是为什么我需要一个正则表达式一次完成所有操作

1 个答案:

答案 0 :(得分:3)

在Notepad ++中,您可以使用带有正则表达式的条件替换。有关详细信息,请参阅Wiktor的this post

代码

(0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)

替换

(?{1}1)(?{2}2)(?{3}3)(?{4}4)(?{5}5)(?{6}6)(?{7}7)(?{8}8)(?{9}9)(?{10}0)

结果

输入

Order66
fight01
fly45

Code before regex replace

输出

点击Notepad ++中的Replace All后输出

Order77
Flight12
fly56

Code after regex replace

说明

  • 每个数字都包含在自己的组中,即(0)
    • 每个组都有不同的标识符。即(0)是第1组
  • 在替换中,我们可以有条件地定位包含值的组,因此(?{1}1)定位第一个捕获组,并用1替换其内容((?{1})引用捕获组1)< / LI>