PHP Regex - 删除冗余空格但保留换行符

时间:2011-01-27 12:56:26

标签: php regex

我正在寻找一个正则表达式来删除冗余(两个或多个)空格但保留换行符。

知道这有什么用吗?

提前致谢!

4 个答案:

答案 0 :(得分:9)

删除空格和标签

preg_replace("/[ \t]+/", " ", $myval);

仅删除空格

preg_replace("/[ ]+/", " ", $myval);

答案 1 :(得分:3)

删除2个或更多空格:

preg_replace("/[ ]{2,}/", " ", $myval);

答案 2 :(得分:2)

这将替换所有“空格”,但用空格替换

$str = "a   bc


d e       f";
$str = preg_replace('/[^\S\n]+/', ' ', $str);
echo $str,"\n";

<强>输出:

a bc


d e f

答案 3 :(得分:0)

要用字符串中的单个空格替换所有水平空白符号,可以使用

preg_replace('/\h+/', ' ', $str);

其中\h是一个PCRE特定的速记字符类,匹配all characters that \p{Zs} matchesU+0009(水平制表符)。

+之后的量词\h可以匹配一个或多个水平空白符号。要仅匹配两次或更多次出现,请使用限制量词:

preg_replace('/\h{2,}/', ' ', $str);