[英]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.