2011-05-02 61 views
2
$str = 1,gmail,6.69%,2,google,3.01%,3,google maps,0.98; 

我想從上面的(而不是百分比之一)修剪號碼,以便:如何從中刪除空格和空白逗號?

$str = preg_replace('/(?<!\w|\.)\d+/', '', $str); 

結果是

,gmail,6.69%,,google,3.01%,,google maps,0.98; 

,但是這給了我空格和逗號。我該如何擺脫?並非所有的逗號都是空白的。

+0

您可以在逗號中包含逗號,以便它將被替換。只要想想開始/結束,就必須在那裏做一些特別的事情。這可能是一個醜陋的正則表達式。 – 2011-05-02 11:38:27

+0

爲什麼'0.98'不能被替換?這是一個數字,不是百分比的一部分... – 2011-05-02 12:43:27

回答

4

我決定拆分它並分別處理它。如果有的話,讀取國際海事組織更容易。

$values = explode(',', $str); 

$values = preg_grep('/^\d+(\.\d+)?\z/', $values, PREG_GREP_INVERT); 

$str = join(',', $values); 

CodePad