2012-02-09 73 views
2

我需要在新行符号之前插入空格,如果它尚未。对于EX的文字是这样的: '文本' 和 '需要' 之间RegExpr在 n之前插入空格

Some text 
need space dfgfgfkgkf 

插入空间..

$pattern = "/[^\s]\n/i"; 
$replace = " \n"; 

但这个正则表达式不工作

回答

1

试试这个:

$pattern = "/\n/"; 
$replace = " \n"; 
1

我尝试下面的代码和它的工作:

$str = "line1\nline2"; 

echo preg_replace('/\n/',' \n', $str); 
2

你确定你的换行​​符是\n?我会去一个更通用的解决方案,并使用

echo preg_replace('/(?<=\S)(?=\r?\n)/',' ', $str); 

我用一个积极的回顾后和积极的预测先行断言,以找到在该行的结束位置,所以也就只有一个空间,需要更换。

+0

+1是迄今为止唯一的答案,它处理“尚未在空间之前”**和**允许除\ n之外的换行符。 – 2012-02-09 21:37:24