Notepad++中如何替换第一行和最后一行?

How do you replace the first and last line in Notepad++?

我正在尝试创建一个宏来进行一些替换,并在最后删除文档中的第一行和最后一行,但我遇到了死胡同。有什么建议吗?

单个正则表达式替换可以做到这一点。

删除第一行和最后一行:Select 点匹配换行,select 环绕和将查找内容设置为

\`[^\r\n]*[\r\n]+(.*[\r\n]+)[^\r\n]+[\r\n]*\'

设置替换为


我的测试有时需要按两次 查找下一个。第一个发现,出于某种未知原因,只匹配从缓冲区中间的某个地方到最后。

正则表达式解释如下:

\`              Start of buffer
[^\r\n]*        First line, zero or more characters
[\r\n]+         Line separator
(.*[\r\n]+)     Central part of buffer
[^\r\n]+        Line separator before the last line
[\r\n]*         Optional line separators at end of buffer
\'              End of buffer

问题没有说明如何处理文件的第二行为空。上面的 [\r\n]+ 将删除第一行之后的所有空行。类似地,缓冲区末尾附近空行的处理可能不完全符合要求。将 [\r\n]+ 都更改为 \R 可能是对所需内容的更严格解释。

对于修改第一行和最后一行的一般情况,将 Find what 设置为:

\`([^\r\n]*)([\r\n]+.*[\r\n]+)([^\r\n]+)([\r\n]*)\'

设置替换为

First  First\r\n\r\n\r\n\r\nLast  Last

已使用 Notepad++ 版本 6.7.8.2 进行测试

在录制宏时按这些键...

Ctrl+Home
Shift+Down
Backspace
Ctrl+End
Shift+Home
Backspace
Backspace

这将删除文档的第一行和最后一行。