2012-04-02 109 views
1

我正在寻找替换空间字符的多个实例。我最初的搜索似乎都集中在使用/s,但这包括换行符和其他空格php preg_replace两个或更多的空格

我认为这应该是接近?更换两个或多个实例的空间" "一个空间

preg_replace('/ {2,}/', ' ', $string); 
+0

看起来很好,因为它是。有什么问题? – MichaelRushton 2012-04-02 10:49:44

+1

你的问题是什么?正则表达式看起来不错! – stema 2012-04-02 10:49:57

+0

真的吗?一定是一个很好的猜测。一直试图找到它的年龄 – 2012-04-02 10:55:59

回答

3

什么尝试这样的:

preg_replace('/\s\s+/', ' ', $string); 
+1

OP不希望'\ s',因为它不仅包含空格。 – stema 2012-04-02 10:53:50

+0

@stema'[] [] +'那么将是一个解决方案...... – 2012-04-02 10:55:33

+0

'[]'方括号做什么。它是否有助于分割模式,使其更易于阅读? – 2012-04-02 12:28:43

0
$str = 'word word 123.'."\n\n".'new line word'; 
$replaced = preg_replace('#\h{2,}#m', ' ', $str); 

输出:

一字一句123

新线工作

\h转义序列仅适用于水平空间。 m修饰符用于多行。