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