Notepad ++执行搜索替换除最后一行之外的所有行

时间:2015-05-13 15:06:01

标签: regex notepad++

Notepad ++ 中,我经常需要执行基于正则表达式的搜索并在多行上替换。但是,我想保留最后一行。

以下简单示例:

示例文件

Line One
Line Two
Line Three
Line Three

正则表达式:

(.*)

替换为:

\1,

所需结果如下:

Line One,
Line Two,
Line Three,
Line Three

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容仅捕获行结尾,然后使用逗号+捕获的换行符号替换:

找到:([\r\n]+)

替换为:,\1

如果你有一个空白/空的最后一行,并且你仍然不需要在最后一个 -empty行的末尾添加一个逗号,请在查找内容中使用此正则表达式:< / p>

([\r\n]+)(?!\s*$)

enter image description here

答案 1 :(得分:1)

这会将第一组中的行文字和第二组中的新换行符分组,这样您就可以轻松完成更换

查找:

(.*)(?=[\r\n])

替换为:

\1,

enter image description here

答案 2 :(得分:1)

捕获行并结束,在替换中插入逗号。

查找:(.*)(\r?\n)
Repl:$1,$2

如果您想获得幻想,可以只将逗号添加到不以逗号结尾的行中。

 # (?m)^((?!.*,[^\S\r\n]*\r?\n).*)(\r?\n)

 (?m)                          # Multi-line mode
 ^     
 (                             # (1 start), line data
      (?! .* , [^\S\r\n]* \r? \n )
      .* 
 )                             # (1 end)
 ( \r? \n )                    # (2), line ending