簡體   English   中英

PHP正則表達式將4個或更多的換行符壓縮為3個換行符

[英]PHP regex to condense 4 or more line breaks into 3 line breaks

謝謝你的協助! 我已經在互聯網上進行了搜索,但找不到我要找的答案。

我具有評論功能,但我不希望用戶句子之間的空行超過2條。 例:

1st Line - 1 break
2nd Line - 2 breaks

3rd Line - 3 breaks


4th Line - 4 breaks



5th Line - 5 breaks




6th Line

應該凝結為:

1st Line - 1 break
2nd Line - 2 breaks

3rd Line - 3 breaks


4th Line - 4 breaks


5th Line - 5 breaks


6th Line

該解決方案還需要刪除由空格和制表符包圍的換行符,以使用戶無法繞過換行符冷凝。

我嘗試了以下操作,但最終只刪除了句子后面的換行符之外的所有換行符:

$text = preg_replace("/(\s*\R\s*)/", "\n", $text);

$text = preg_replace("/\R{3,}/", "\n\n\n", $text);


Results in:

1st Line - 1 break
2nd Line - 2 breaks
3rd Line - 3 breaks
4th Line - 4 breaks
5th Line - 5 breaks
6th Line

任何幫助是極大的贊賞! 感謝您抽出寶貴時間查看我的問題。 祝你有美好的一天!

您可以使用以下php正則表達式:

$str = preg_replace('/(?:\h*\R){3,}/', '\n\n\n', $str);

正則演示

此正則表達式匹配使用

  • (?:\\h*\\R) :匹配0個或多個水平空格,后跟任何換行符。 (?:...)適用於非捕獲組。
  • (?:\\h*\\R){3,} :匹配3個或更多出現的分組表達式

暫無
暫無

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

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