[英]Replace multiple new lines with a single newline
如何用一個換行符替換多個連續的換行符。 最多可以有 20 個相鄰的換行符。 例如
James said hello\n\n\n\n Test\n Test two\n\n
試試這個:
$str = "Hello\n\n\n\n\nWorld\n\n\nHow\nAre\n\nYou?";
$str = preg_replace("/\n+/", "\n", $str);
print($str);
完善Marc B的答案:
$fixed_text = preg_replace("\n(\s*\n)+", "\n", $text_to_fix);
它應與初始換行符匹配,然后與任意數量的空白組中的至少一個匹配,后跟一個換行符,並將它們全部替換為一個換行符。
$fixed_text = preg_replace("\n+", "\n", $text_to_fix);
假設連續的換行符是真正連續的,並且它們之間沒有任何空格(制表符,空格,回車符等),則應該這樣做。
$str = 'James said hello\n\n\n\n Test\n Test two\n\n';
echo preg_replace('{(\\\n)\1+}','$1',$str);
在正則表達式中:
+<\/code>表示“一個或多個前面的表達式”
<\/li>
{2,}<\/code>表示“兩個或多個前面的表達式”
<\/li><\/ul> 對於此問題中的要求,將單個\\n<\/code>替換為單個 \\ \\n<\/code>是沒有意義的,因為該子字符串沒有任何變化。
換句話說, \/\\n+\/<\/code>只是在做不必要的工作。
使用兩個或更多的范圍量詞更有意義。
輸出:
在其他情況下,用
\\R<\/code>替換可能來自不同操作系統的換行符序列可能是有利的。
此元字符匹配
\\r\\n<\/code>或
\\n<\/code> 。
這是一個修改后的模式,它將用服務器指定的換行符序列替換兩個或多個換行符序列:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.