我正在寻找一个正则表达式来删除冗余(两个或多个)空格但保留换行符。
知道这有什么用吗?
提前致谢!
答案 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}
matches加U+0009
(水平制表符)。
+
之后的量词\h
可以匹配一个或多个水平空白符号。要仅匹配两次或更多次出现,请使用限制量词:
preg_replace('/\h{2,}/', ' ', $str);