2011-04-04 37 views
24

可能重複:
remove multiple whitespaces in php如何從句子中刪除多餘的空格,製表符和換行符,並用一個空格替換它們?

我有字符流,一個句子或段落,其中可能有多餘的空格在兩個詞,甚至製表符或換行,怎麼能我刪除所有這些並用一個空格替換它們。

+0

這個問題怎麼能跳過我的眼睛?謝謝Shakti :-) – Kumar 2011-04-04 13:39:59

+0

這個問題與@Shakti標記爲重複的問題不太一樣。不過,這可能只是一個誤解。你想要發生一個*單*選項卡或換行符?他們應該被單獨留下嗎?多個選項卡應該成爲一個選項卡,還是應該成爲一個空白?怎麼樣混合標籤,空格,換行符等? – 2011-04-04 13:48:39

+0

@Tim Pietzcker,我想將所有空格,製表符和換行符轉換爲一個空格,以便我可以使用空格作爲分隔符來爆炸()這個句子。 – Kumar 2011-04-04 14:25:39

回答

77

你可以使用正則表達式,如:

preg_replace("/\s+/", " ", $string); 

這應該只有一個替換所有多的空格,製表符和新行。

Thanks to @ridgerunner您的建議 - 它可以顯著更快,如果你添加'S'研究修改:

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

'S'helps "non-anchored patterns that do not have a single fixed starting character" - i.e. a character class.

+0

和製表符和換行符?我是否需要通過多個正則表達式運行我的文本輸入? – Kumar 2011-04-04 13:37:05

+0

@Kumar,不,標籤和換行符包含在'\ s'中。 – 2011-04-04 13:46:39

+0

@Tim Pietzcker感謝您的補充,我忘了提及標籤和明確的新行。 – jeroen 2011-04-04 13:51:41

相關問題