2010-11-12 64 views
1

我沒有任何正則表達式與PHP(只是一些複製/粘貼爲簡單的任務),所以我不能'解決'簡單情況,我希望somone可以幫助。PHP和正則表達式從開始切換到新行

我有一個看起來像一個拉赫文件:

xxxxxxxxxxxxxx 
xxxxxxxxxxxxxxx 
xxxxxxxxxxxxxx 
text,text,text, 
text,text,tec,etc 

現在我需要在PHP寫到哪,像這樣的內容傳遞的字符串函數將返回我說,我在這裏爲標記的部分「XXX ...」 在文件開始處的每個'xxxx ...'序列之後,我可以看到新行(\ r \ n),並且我不知道如何使用正則表達式將上半部分剪切成另一個字符串,所以請幫助。

回答

1

如果由兩個新行分隔的字符串的唯一部分是'xxxx'的標題系列和下面的「文本,文本,文本」行,則可以簡單地使用explode。路過的2的限制意味着它只會在爆炸「\ n \ n」的第一個實例,返回最多2項的數組:

list($header, $body) = explode("\n\n", $file_contents, 2); 
+0

小問題是,在大多數的文件,只有新的生產線,但在一些有一些其他的倒在文件中,anycase我只需要從開始到切斷第一個新行,在那之後我什麼都不需要,所以這會起作用,但有沒有更好的方法來匹配第一個新行? anycase謝謝你的回答! – Sam 2010-11-12 13:39:45

+0

@Sam你可以給'explode'加上一個2的限制,這可以確保忽略第一個之後的所有雙換行符。查看更新的答案。 – meagar 2010-11-12 14:32:20

1

我會跳過正則表達式。

$eol = strpos($s, "\r\n"); 
$header = substr($s, 0, $eol); 
$rest = substr($s, $eol + 2);