Notepad ++替换相同文本和附加字符的正则表达式匹配

Kev*_*sen 57 regex replace notepad++

我有文字和数字为5(即,长度的文件12000,11153等).我想用一个附加所有这些数字0.因此11153变得111530.这可能在Notepad ++中吗?

我知道我可以使用以下正则表达式查找所有数字:[0-9]{5}但是如何用相同的数字替换这些数字,再添加一个0

在替换盒中,我尝试了以下方法:

  • [0-9]{5}0- 字面意思,所以11153被替换[0-9]{5}0
  • \10 - 我读到了某个\1可以参加比赛的地方,但似乎没有用.这将取代11153使用0
  • 编辑:\00- 基于这个SO答案,我看到我需要使用\0而不是\1.它仍然无法正常工作.这将取代11153使用

So, I've got the feeling I'm close with the \1\0,但不够接近.

Cin*_*out 72

你非常接近答案!你错过的是一个捕获组.

在"查找内容"部分中使用此正则表达式:

([0-9]{5})

在"替换为"中,使用此:

\10

()表示捕获组.这实际上意味着您捕获您的数字,然后将其替换为后跟零.

  • 您根本不需要捕获,所有OP需求都是`\ d {5}`(或`\ b\d {5}\b`,或`^\d {5} $`) - >` $ {0} 0`,只使用使用类似Perl的反向引用定义的第0组.POSIX样式反向引用的使用需要使用捕获组,为true(因为POSIX反向引用从`1`开始到`9`,因此`\ 10`永远不会被误认为是对第10组的反向引用). (3认同)

bob*_*ble 5

您可以使用\K重置

\b\d{5}\b\K
Run Code Online (Sandbox Code Playgroud)

并替换为 0

在regex101上查看演示


rob*_*ock 5

你很亲密 您需要使用方括号将捕获组添加到正则表达式中。([0-9]{5})

然后\10用作替换。这是将匹配项替换为第1组中的文本,后跟零。

  • 没问题。我只是不够快:)。我很高兴你有解决方案 (2认同)