将两行以上的新代码减少为一行


Reduce more than two new lines to one

如何将两行以上的新代码缩减为一行?

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

谢谢!

我不知道你的困惑是什么…用一个'n替换2个或更多的'n将导致单行断行,这就是您得到的结果。从你的例子中,你似乎想要一个双换行。(一个换行,然后一个空行,然后另一个换行)

preg_replace('/'n{2,}/', "'n'n", "Hi,'nHow are you?'n'n'nI am just testing");

注意,我还删除了regex中'n周围不必要的[]

也许这有帮助?

$string = str_replace("   ", "'n", $string);

$string = str_replace("   ", " ", $string);

只是对上一个答案的改进。从你的例子中,你似乎想要一个双换行。(一个换行,然后一个空行,然后另一个换行)

preg_replace('/'n{3,}/', "'n'n", "Hi,'nHow are you?'n'n'nI am just testing");

{3,}因为不需要匹配/替换两个或更少的'n。注:我发布了一个新的答案,因为我还没有声誉来添加评论。