我需要一个忽略第一行的正则表达式模式,例如:
test
test
test
应该匹配最后两个测试 test,第一个应该被跳过。
与其混淆你的正则表达式,不如吃掉程序中提供正则表达式的第一行。未经测试的代码如下:
$file_handle = fopen("myfile", "r");
$throwAway = fgets($file_handle);
while (!feof($file_handle)) {
$line = fgets($file_handle);
yourMagicFunction($line);
}
fclose($file_handle);
我通常推荐更容易管理的过程。必须担心您的正则表达式的下一个维护者会查看它并想知道为什么它会占用第一行而不是让单独的程序执行该功能。
使用正则表达式模式
(?!\A)^.*\Z
带有多行m
和单行(全点)s
修饰符
所以在 PHP
/(?!\A)^.*\Z/ms