我正在尝试搜索空格前的每个逗号和一个数字以将其删除。
这就是我所拥有的:
Mustardroad, 21, Teststreet 2, Point Place, 5
这就是我想要的:
Mustardroad 21, Teststreet 2, Point Place 5
答案 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+
,如果它是你想要的那样)