簡體   English   中英

用一個換行符替換多個換行符

[英]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>只是在做不必要的工作。

    使用兩個或更多的范圍量詞更有意義。

    代碼:(演示<\/a>)

    輸出:

    在其他情況下,用\\R<\/code>替換可能來自不同操作系統的換行符序列可能是有利的。 此元字符匹配\\r\\n<\/code>或\\n<\/code> 。 這是一個修改后的模式,它將用服務器指定的換行符序列替換兩個或多個換行符序列:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM