在 Notepad ++ 中,我经常需要执行基于正则表达式的搜索并在多行上替换。但是,我想保留最后一行。
以下简单示例:
示例文件
Line One
Line Two
Line Three
Line Three
正则表达式:
(.*)
替换为:
\1,
所需结果如下:
Line One,
Line Two,
Line Three,
Line Three
答案 0 :(得分:3)
您可以使用以下内容仅捕获行结尾,然后使用逗号+捕获的换行符号替换:
找到:([\r\n]+)
替换为:,\1
如果你有一个空白/空的最后一行,并且你仍然不需要在最后一个非 -empty行的末尾添加一个逗号,请在查找内容中使用此正则表达式:< / p>
([\r\n]+)(?!\s*$)
答案 1 :(得分:1)
这会将第一组中的行文字和第二组中的新换行符分组,这样您就可以轻松完成更换
查找:
(.*)(?=[\r\n])
替换为:
\1,
答案 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