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

时间:2017-01-09 16:49:18

标签: php regex

我正在尝试搜索空格前的每个逗号和一个数字以将其删除。

这就是我所拥有的:

Mustardroad, 21, Teststreet 2, Point Place, 5

这就是我想要的:

Mustardroad 21, Teststreet 2, Point Place 5            

3 个答案:

答案 0 :(得分:2)

使用此:

>>> values.get(10, 10)
10

这将删除数字之前的每个逗号和后续空格。

如果你想在数字之前留一个空格:

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

答案 1 :(得分: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) - 前瞻性肯定断言,确保逗号,后跟“空格和数字

答案 2 :(得分: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+,如果它是你想要的那样)