替换换行符,但保留空行

替换换行符,但保留空行

问题描述:

我想用空格替换换行符(\ 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); 

试试这个:

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

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

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

+0

迄今为止唯一建议的实际上似乎按要求工作。 +1。 – 2011-03-10 10:55:16

+0

美丽。我用(? ssam 2011-03-10 11:02:07

试试这个:

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

这应该做的绝招:

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