2010-10-29 45 views
6

我有点卡住了。如何使用一个换行符删除连续的多个换行符。最多可以有20条换行符相邻。例如PHP多个新行

詹姆斯说你好\ n \ n \ n \ n测试\ n测试二\ n \ n

竟又为:

詹姆斯说你好\ N个测试\ n测试二\ ñ

回答

10

试试这个:

$str = "Hello\n\n\n\n\nWorld\n\n\nHow\nAre\n\nYou?"; 
$str = preg_replace("/\n+/", "\n", $str); 
print($str); 
1
$fixed_text = preg_replace("\n+", "\n", $text_to_fix); 

这应该这样做,假定连续换行是真正连续的,并且没有任何空格之间(制表符,空格,回车等)。

0
$str = 'James said hello\n\n\n\n Test\n Test two\n\n'; 
echo preg_replace('{(\\\n)\1+}','$1',$str); 
4

提高对马克·B的回答:

$fixed_text = preg_replace("\n(\s*\n)+", "\n", $text_to_fix); 

这应该与初始换行,那么至少一组空白的任何量的一个然后换行,并用一个换行符替换它。