【问题标题】:Notepad++ RegEx : Copy search text and replace same by appending valueNotepad++ RegEx:复制搜索文本并通过附加值替换相同
【发布时间】:2017-03-11 05:24:57
【问题描述】:

我有一个大文本文件,其中包含页码(从 997 到 2989)及其内容。

例如。

 997
....
some-content
....

 998
....
some-content
....

 999
....
some-content
....

and so on..
.
.
.
 2989
....
some-content
....

我想在 notepad++ 中使用正则表达式将值 1 附加到上面提到的每个页码,而不影响其实际内容,以便它显示如下:

1   997
    ....
    some-content
    ....

1   998
    ....
    some-content
    ....

1   999
    ....
    some-content
    ....

    and so on..
    .
    .
    .
1   2989
    ....
    some-content
    ....

通过使用以下正则表达式,我可以找到所有页码

/^(\s|\s\s|\s\s\s)(9|1|2)\d+$/gm

但我不知道如何通过附加 1 并保持相同的页面 no 来替换它。

我使用了 \1 但它不起作用并用空格替换它。

任何帮助将不胜感激。

【问题讨论】:

  • 试试^(\s{1,3})([912]\d+)$,换成${1}1 $2(或者\11 $2,都一样)
  • @WiktorStribiżew:哦,它的工作原理很棒,但有一个问题是在 1 之前附加空格。如何避免这种情况?
  • 也许你需要^(\h{1,3})([912]\d+)$ --> 1$1$2?

标签: javascript jquery regex notepad++


【解决方案1】:

我建议使用

^(\h{1,3})([912]\d+)$

并替换为1$1$2

详情

  • ^ - 行首
  • (\h{1,3}) - 第 1 组捕获 1 到 3 个水平空格
  • ([912]\d+) - 第 2 组捕获以 912 开头并包含 1 个或多个数字的号码
  • $ - 行尾。

替换模式1$1$2包含1,然后$1是对组1中保存的值的反向引用,$2引用组2中的文本。使用反向引用,我们可以重新插入在用新文本替换旧文本时捕获潜文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2015-12-16
    • 2013-01-19
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多