正则表达式逗号之前的空格和数字
问题描述:
我想搜索每个逗号前的空格和数字来删除它。正则表达式逗号之前的空格和数字
这是我有:
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