2012-04-02 105 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修飾符用於多行。