regex 记事本++替换相同文本加上附加字符的正则表达式匹配

sz81bmfz  于 2022-12-24  发布在  其他
关注(0)|答案(3)|浏览(127)

我有一个包含文本和数字的文件,长度为5(即1200011153等)。我想在所有这些数字后面加上一个0。这样11153就变成了111530。在记事本++中可以这样做吗?
我知道我可以用下面的正则表达式找到所有的数字:[0-9]{5},但是我如何用相同的数字加上一个附加的0来替换这些呢?
在替换盒中,我尝试了以下操作:

  • [0-9]{5}0-按字面理解,因此11153被替换为[0-9]{5}0
  • \10-我在哪里读到\1可以匹配,但是它似乎不起作用。这将用0替换11153
  • 编辑:\00-基于这个SO answer,我发现我需要使用\0代替\1。但是它仍然不起作用。这将用``代替11153

所以,我觉得我接近\1\0,但还不够接近。

oxcyiej7

oxcyiej71#

你离答案很近了!你错过的是一个捕获组。
在“查找内容”部分使用此正则表达式:
第一个月
在“替换为”中,使用以下命令:
\10
()表示一个捕获组,这实际上意味着您捕获您的编号,然后将其替换为相同的编号,后跟一个零。

kxe2p93d

kxe2p93d2#

您已经非常接近了。您需要在正则表达式中添加一个捕获组,方法是用括号将其括起来。([0-9]{5})
然后使用\10作为替换项,即用组1中的文本后跟零来替换匹配项。

e4yzc0pl

e4yzc0pl3#

您可以使用\K进行重置。

\b\d{5}\b\K

并替换为0

See demo at regex101

相关问题