2011-03-10 164 views
6

我想用空格替換換行符(\ r \ n),但我想保留空行。換句話說,如果\ r \ n之前沒有另一個\ r \ n,我想用\'替換\ r \ n。例如:替換換行符,但保留空行

line 1 

line 2 
line 3 
line 4 

Shold最終成爲...

line 1 

line 2 line 3 line 4 

但不作爲 「1個線2號線3號線4號線」,這是我現在在做這個

什麼
preg_replace("/\r\n/", " ", $string); 

回答

3

試試這個:

(?<!\n)\n(?!\n) 

當然,你可以改變\n到任何你所需要的。

工作示例:http://ideone.com/dF5L9

+0

迄今爲止唯一建議的實際上似乎按要求工作。 +1。 – 2011-03-10 10:55:16

+0

美麗。我用(?<!\ r \ n)\ r \ n(?!\ r \ n),它的功能就像一個魅力。謝謝。 – ssam 2011-03-10 11:02:07

2

試試這個:

preg_replace("/(.)\r\n(?=.|$)/", "$1 ", $string); 
+0

沒有。它仍然殺死空白行。感謝您的嘗試。 – ssam 2011-03-10 10:53:36

+0

這會將兩條新行減少到一行,第一行就在'行1'後面,可以與正則表達式匹配。 – Kobi 2011-03-10 10:54:49

+0

@ssam:查看我的更新。 – Gumbo 2011-03-10 10:55:29

1

這應該做的絕招:

preg_replace("/(?<!\n)\n(?!\n)/", " ", $string);