我想搜索每個逗號前的空格和數字來刪除它。正則表達式逗號之前的空格和數字
這是我有:
Mustardroad, 21, Teststreet 2, Point Place, 5
而這正是我想要的:
Mustardroad 21, Teststreet 2, Point Place 5
我想搜索每個逗號前的空格和數字來刪除它。正則表達式逗號之前的空格和數字
這是我有:
Mustardroad, 21, Teststreet 2, Point Place, 5
而這正是我想要的:
Mustardroad 21, Teststreet 2, Point Place 5
使用此:
$res = preg_replace('/,\s+(?=\d)/', '', $string);
這之前刪除每個逗號和下面的空間沒有任何數字。
如果你想保持兩位數前一個空間:
$res = preg_replace('/,\s+(?=\d)/', ' ', $string);
使用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)
- 前瞻積極的斷言,保證了一個逗號,
其次是「空間和多項」
沒有正則表達式,你可以這樣做:
$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+
,如果它是你想要的)
用類似這樣的東西:'/,[0-9] {1,}/g'? – Nolwennig