我正在尝试创建一个执行一些替换的宏,最后删除文档中的第一行和最后一行,但我已经走到了尽头。有什么建议吗?
答案 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;
这将删除文档的第一行和最后一行。