2010-04-29 23 views
0

我怎麼能替換爲{number})\n{number})如何Pregreplace {數})與 N {數})

說我有這樣的事情

1) test string testing new string. 2) that is also a new string no new line. 3) here also no new lines. 

輸出應該是這樣的

1) test string testing new string. 

2) that is also a new string no new line. 

3) here also no new lines. 

我該如何用正則表達式做這件事?

回答

7
$outputstring = preg_replace('/([0-9]+)\)/', "\n$1)", $inputstring); 

匹配任意一組數字,然後是文字),以新行後跟這些數字後面是)取代。

如果你想在那裏實際上有一個空白行,就像在你的輸出中一樣,你實際上需要插入兩條換行符(因爲你需要一個換行符來結束文本行,然後另一個添加空行)。只要在第二個參數中使用\n\n而不是\n(如果情況如此)。

另請注意,如果它以編號的點開始,這將在字符串的開頭添加一個換行符,因此如果您不想使用前導換行符,則可能需要稍後修剪字符串。

+0

感謝\ n \ n它工作完美,再次感謝並祝你有美好的一天 – streetparade 2010-04-29 08:48:56

+0

我會考慮使用'PHP_EOL'而不是\ n :) – Svish 2010-04-29 09:36:07

1

用戶preg_replace功能

$ STR = 「1)測試字符串測試新串2),這也是一個新的字符串沒有新的線3)這裏也沒有新的線。」;

print preg_replace("/(\d+\))/","\n$1" , $str); 
2
$result = preg_replace('/(?<!\A|\n\n)(?=[0-9]+\))/m', '\n\n', $subject); 

會做同樣的事情,DAV的解決方案,但也將在單獨的字符串(在這種情況下1))開始離開數字。如果在他們面前已經有兩個換行符,它也將使數字獨立。