2017-01-09 152 views

回答

2

使用此:

$res = preg_replace('/,\s+(?=\d)/', '', $string); 

這之前刪除每個逗號和下面的空間沒有任何數字。

如果你想保持兩位數前一個空間:

$res = preg_replace('/,\s+(?=\d)/', ' ', $string); 
2

使用preg_replace功能與特定的正則表達式的解決方案:

$str = 'Mustardroad, 21, Teststreet 2, Point Place, 5'; 
$str = preg_replace("/,(?=\s+\d)/", "", $str); 

print_r($str); 

輸出:

Mustardroad 21, Teststreet 2, Point Place 5 

(?=\s+\d) - 前瞻積極的斷言,保證了一個逗號,其次是「空間和多項

1

沒有正則表達式,你可以這樣做:

$str = 'Mustardroad, 21, Teststreet 2, Point Place, 5'; 

$result = array_reduce(explode(', ', $str), function ($c,$i) { 
    if (empty($c)) 
     return $i; 
    return is_numeric($i[0]) ? "$c $i" : "$c, $i"; 
}); 

隨着preg_replace:看@Roman或@Toto答案。 (最終用文字空間代替\s+,如果它是你想要的)

相關問題