2012-11-05 122 views
-3

我需要忽略第一行,例如正则表达式模式:忽略第一行

test 
test 
test 

应与过去两年试验测试,第一个应该被跳过。

+0

什么是你的正则表达式这么远? –

+0

你在用什么语言? – gpojd

+0

@gpojd PHP是我正在使用的。 – Aborted

回答

0

使用正则表达式

(?!\A)^.*\Z 

与多m和单线(点全部)s修饰

所以在PHP

/(?!\A)^.*\Z/ms 
+0

没有什么需要时增加复杂性。 – Woot4Moo

+0

@ Woot4Moo - 你不喜欢它?我可以使它更短:'/(?!\ A)^。*/ms' :) –

+0

@Omega哦,别担心我喜欢它:)。我只是觉得比表达式强制这种类型的逻辑有更简单的解决方案。 – Woot4Moo

0

而不是混淆你的正则表达式,只是吃程序中的第一行,喂正则表达式。未经测试的代码如下:从here

采取

$file_handle = fopen("myfile", "r"); 
$throwAway = fgets($file_handle); 
while (!feof($file_handle)) { 
    $line = fgets($file_handle); 
    yourMagicFunction($line); 
    } 
fclose($file_handle); 

码我一般建议在易于管理的过程。关心的是你的正则表达式的下一个维护者会看到它,并想知道为什么它会扼杀第一行,而不是让一个单独的程序执行该功能。

+0

我正在使用PHP ... – Aborted

+1

@Aborted让我去Google如何在PHP中读取一行并更新我的答案。你正在处理文件或什么? – Woot4Moo

+0

@Aborted更新为使用PHP代码来显示它应该如何工作,该解决方案未经测试。 – Woot4Moo