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

时间:2015-06-02 11:04:59

标签: macros notepad++

我正在尝试创建一个执行一些替换的宏,最后删除文档中的第一行和最后一行,但我已经走到了尽头。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

单个正则表达式替换可以执行此操作。

要删除第一行和最后一行:选择点匹配换行符,选择换行并设置查找内容

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

将替换设置为

\1

我的测试有时需要查找下一个才能按两次。第一个发现,由于某种未知的原因,只能从缓冲区中间的某个位置到结束位置进行匹配。

正则表达式解释如下:

\`              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可能会对所需内容进行更严格的解释。

对于修改第一行和最后一行的一般情况,设置查找内容

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

将替换设置为

First \1 First\r\n\r\n\2\r\n\r\nLast \3 Last\4

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

答案 1 :(得分:0)

当宏正在录制时按下这些键......

switch($_POST['code']):

    case '123456':
        header('Location: page1.html');
    break;

    case '56789':
        header('Location: page1.html');
    break;

    case '5252':
        header('Location: page3.html');
    break;

    default:
        header('Location: codenotfound.html');

endswitch;

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