如何将两行以上的新代码缩减为一行?
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。注:我发布了一个新的答案,因为我还没有声誉来添加评论。