正则表达式逗号之前的空格和数字

问题描述:

我想搜索每个逗号前的空格和数字来删除它。正则表达式逗号之前的空格和数字

这是我有:

Mustardroad, 21, Teststreet 2, Point Place, 5 

而这正是我想要的:

Mustardroad 21, Teststreet 2, Point Place 5    
+0

用类似这样的东西:'/,[0-9] {1,}/g'? – Nolwennig

使用此:

$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+,如果它是你想要的)