记事本++在单个(某些)行中插入值(不使用String)

时间:2016-07-29 11:40:13

标签: regex notepad++

我想知道如何在NotePad ++中的第5行文本之后添加一些新值(或新行)。我的解决方案(其他人的组合):

搜索\A(.*.)\r\n(.*.)\r\n(.*.)\r\n(.*.)
更改\1\r\n\2\r\n\3\r\n\4\r\n\5STRING

输入

12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890

输出

12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
STRING
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890
12345,67890,12345,67890

还有其他(更具可读性)选项吗?

1 个答案:

答案 0 :(得分:3)

您可以使用限制量词{min,max} / {exact_num}和匹配行的分组构造,还需要将整个文档与{{1}匹配}}和\A定位,使模式替换在\zReplace 中都有效:

Find in Files

并替换为\A((?:.*\R){4})([\s\S]*)\z 。只需将光标放在文档的开头,然后点击$1STRING\r\n$2两次。

<强>详情:

  • Replace - 文件开头
  • \A - (第1组后来用替换模式中的((?:.*\R){4})引用)匹配除了换行符($1)之外的0 +个字符的4个序列,直到行尾如果可以有多个换行符,则换行符.*在其后添加\R;如果文档中只有4行,则为+,如果?,则为*可以有0个或更多换行符)
  • ([\s\S]*) - (第2组后来引用$2反向引用)匹配0+任何字符,包括换行符
  • \z - 文档的最后部分。

替换模式包含引用组1的反引用$1STRING\r\nSTRING带有CRLF换行符)和$2反向引用。

现在,您可以点击全部替换,您将在文档中执行单次替换。

enter image description here