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

Notepad ++ Perform Search Replace On All Lines Except Last

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

下面的简单示例:

示例文件

Line One
Line Two
Line Three
Line Three

正则表达式:

(.*)

替换为:

,

要求的结果如下:

Line One,
Line Two,
Line Three,
Line Three

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

查找内容:([\r\n]+)

替换为:,

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

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

这会将第一组中的行文本和第二组中的新换行分组,因此您可以轻松地进行更多替换

查找:

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

替换为:

,

捕获行和结尾,在替换中插入一个逗号。

查找:(.*)(\r?\n)
回复:,

如果您想花哨一点,可以只在不以逗号结尾的行中添加逗号。

 # (?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