正则表达式记事本在每行中递增数字

问题描述 投票:0回答:4

我必须使用 Notepad++ 在每一行的开头逐渐添加数字。 这还不是开始。但是,就像

  when ID = '1' then data
  when ID = '2' then data
  when ID = '3' then data
  .
  .
  .
  .
  when ID = '700' then

有什么方法可以通过替换为任何表达式来增加这些数字,或者是否有任何内置记事本功能可以做到这一点。

谢谢

regex notepad++ auto-increment
4个回答
36
投票

如果你想用notepad++来做到这一点,你可以按照以下方式进行。

首先,您可以使用模板文本编写所有 700 行(您可以使用宏或使用编辑 -> 列编辑器)。写完后,将光标放在您想要数字的位置,单击

Shift
+
Alt
并选择所有行:

enter image description here

enter image description here enter image description here


1
投票

无法使用正则表达式来完成此操作,因为您需要有一个计数器并进行算术运算(例如加一)。


1
投票

您可以尝试ConyEdit的

cc.p
命令。它是一个文本编辑器的跨编辑器插件,当然包括Notepad++。

运行ConyEdit,复制下面的文本和命令行,然后粘贴:

when ID = '#1' then data
cc.p 700

Gif 示例


0
投票

我知道这是一个老问题,但我将其放在这里,以防将来对其他人有所帮助。有一种方法可以通过正则表达式搜索一次性增加数字并在 Notepad++ 中替换(我使用的是 v8.5.6)。到目前为止,我在自己的项目中还没有遇到过这些表达式的任何问题。

在 Notepad++ 中按 ctrl-h,选中“正则表达式”框,然后在“查找内容”中粘贴以下内容:

(?<!!!!!!)\b(?'m1'\d*?)(?'m2'(?'a'0)|(?'b'1)|(?'c'2)|(?'d'3)|(?'e'4)|(?'f'5)|(?'g'6)|(?'h'7)|(?'i'8)|(?'j'9))(?'m3'(?'pbn'9{128})?(?'p7'9{64})?(?'p6'9{32})?(?'p5'9{16})?(?'p4'9{8})?(?'p3'9{4})?(?'p2'99)?(?'p1'9)?(?<=9))?\b

并在“替换为”中粘贴以下内容:

(?{pbn}!!!!!$+{m1}$+{m2}$+{m3}!!!!!:$+{m1}(?{a}1:(?{b}2:(?{c}3:(?{d}4:(?{e}5:(?{f}6:(?{g}7:(?{h}8:(?{i}9:(?{j}10))))))))))(?{p7}0000000000000000000000000000000000000000000000000000000000000000)(?{p6}00000000000000000000000000000000)(?{p5}0000000000000000)(?{p4}00000000)(?{p3}0000)(?{p2}00)(?{p1}0))

请注意一个限制:此正则表达式携带 1 的位置不能超过 128 个位置。因此,如果数字以超过 128 个连续 9 结尾,则正则表达式将用“!!!!!”标记未处理的数字。这样就可以找到手动添加了。

!!!!!nnnnn..9 x 129+!!!!!

认为它适用于任意大的数字,只要它们末尾没有太多的9。但对于那么大的数字我不需要这个。

如果您处理的数字非常大,您可以添加更多 2^x 个 9 块来替换。我还没有尝试过其他 PCRE 兼容工具中的表达式,但我想如果您的正则表达式引擎支持命名子表达式,它也可以在那里工作。

© www.soinside.com 2019 - 2024. All rights reserved.