修剪字符串中的多个换行符和多个空格?

2024-01-22

如何修剪多个换行符?

例如,

$text ="similique sunt in culpa qui officia


deserunt mollitia animi, id est laborum et dolorum fuga. 



Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore
"

我尝试过这个answe https://stackoverflow.com/questions/6228367/preg-replace-remove-multiple-nr 但我认为它不适用于上述情况,

$text = preg_replace("/\n+/","\n",trim($text));

我想要得到的答案是,

$text ="similique sunt in culpa qui officia

    deserunt mollitia animi, id est laborum et dolorum fuga. 

    Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore
    "

Only 单行中断被接受。

另外我想同时修剪多个空白,如果我在下面这样做,我无法保存任何换行符!

$text = preg_replace('/\s\s+/', ' ', trim($text));

我怎样才能在正则表达式中同时完成这两件事?


在这种情况下你的换行符是\r\n, not \n:

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

这就是说“每次发现 3 个或更多换行符时,将其替换为 2 个换行符”。

Spaces:

$text = preg_replace("/ +/", " ", $text);
//If you want to get rid of the extra space at the start of the line:
$text = preg_replace("/^ +/", "", $text);

Demo: http://codepad.org/PmDE6cDm http://codepad.org/PmDE6cDm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修剪字符串中的多个换行符和多个空格? 的相关文章

随机推荐