2011-11-01 13 views
1

我在解決這個問題時遇到了一些麻煩。使用具有多個空間的Preg_Split

我有數據線,如本:

$數據=「阿爾法自然資源公司COM 02076X102 2,077 45700 X

我期待‘爆炸’這一行,只要有一個以上的空間。我碰到的問題是我只找到解決方案,炸掉有一個或更多空間的線 - 我打算炸掉這條線,在那裏有多個空間,但不只有一個空間(因此Alpha Natural Resources Inc保持在一起)

我知道答案可以在preg_spli中找到噸,但我不能找出正確的代碼..

感謝

+0

問這個問題的一個更好的方法是說你想找到***兩個空格或更多的每個實例。 – Andre

回答

0

這應該工作:

preg_split('/ +/', $data) 
6

preg_split('/\s\s+/', $data) 此而任何空白的倍數相匹配,如迴歸,標籤等preg_split('/ +/', $data)將僅匹配空格鍵的空格。 \ s選擇任何空白字符。 Remove multiple whitespaces

+1

是的,我實際上認爲他是指一個空格,而不是空格。順便說一句,它應該是\ s \ s +如果你想使用該解決方案。 – deviousdodo

1

這是一箇舊的帖子,但我想我會添加完整性。

$arr = preg_split('/[\s][\s]{1,3}/', $string,-1,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE); 



這有很多更多的選擇與合作。記住括號內您自定義的空間確切的數字來尋找......
/[\ S]後的首場比賽[\ S] {1,4}/
或只是一次或多次 /[\ s] [\ s] +/ 也知道有這些標誌可以用來處理輸出。

PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE

才讓它返回空的結果和其他包括在返回的內容匹配的內容。

還有其他的(http://php.net/preg-split)可以捕獲偏移量,但會稍微改變輸出結構。
////////////////////更新////////////////
我結束了使用
/(\ w + \ W +)/
//匹配單詞並把它和空格返回。

由於某些原因,preg_split不會替換空格。
它對我來說很陌生,因爲它在某個時間點工作,然後它沒有經過一些編輯。回到它的工作時間,它在我的測試頁面和我的活的頁面上工作。開始添加編輯來解決問題,並且不會返回結果中的空白區域。所以這對我來說非常簡單

相關問題