什么方法可以将两条以上的新线减少为一条呢?
preg_replace('/[\n]{2,}/', "\n", "Hi,\nHow are you?\n\n\nI am just testing");
返回:
Hi,
How are you?
I am just testing
虽然预期的结果是:
Hi,
How are you?
I am just testing
目标是重新格式化电子邮件的文本并更改任何空格> 3比1
谢谢!
答案 0 :(得分:2)
我不确定你的混淆是什么......用一个\n
替换2个或更多\n
将导致单个换行符,这就是你得到的。从你的例子来看,你似乎想要一个双线休息。 (一个换行符,然后是一个空行,然后是另一个换行符。)
preg_replace('/\n{2,}/', "\n\n", "Hi,\nHow are you?\n\n\nI am just testing");
请注意,我还删除了正则表达式中[]
周围不必要的\n
。
答案 1 :(得分:0)
也许这有帮助?
$string = str_replace(" ", "\n", $string);
或
$string = str_replace(" ", " ", $string);
答案 2 :(得分:0)
只是改进了以前的答案。 从你的例子来看,你似乎想要一个双线休息。 (一个换行符,然后是一个空行,然后是另一个换行符)
preg_replace('/\n{3,}/', "\n\n", "Hi,\nHow are you?\n\n\nI am just testing");
{3,}因为不需要匹配/替换两个或更少的\ n。 NB:我发布了一个新的答案,因为我还没有声誉添加评论。