0

数组示例条目:

test : title=Diet    Coke

变成

test:title=Diet Coke
4

4 回答 4

5

这种使用正则表达式的方法只处理一个字符串,但如果你想做一个数组,只需遍历数组并将其应用于每个字符串:

$target="test : title=Diet    Coke";
print_r(preg_replace('/\s*([\s:])\s*/','\1',$target));

输出:

test:title=Diet Coke
于 2009-12-09T20:02:33.683 回答
1

我不是正则表达式专家,但这是一般的想法:

$my_array = array('test : title=Diet    Coke');

function do_crazy_thing($string){
  $string = preg_replace('/  +/', ' ', $string);
  $string = preg_replace('/ : /', ':', $string);
  return $string;
}

$my_array = array_map('do_crazy_thing', $my_array);

编辑:刚刚对此进行了测试,似乎工作正常。

于 2009-12-09T19:58:32.723 回答
1
foreach ( $a as $k=>$v ) {
    $v     = preg_replace("`\s*:\s*`", ":", $v);
    $a[$k] = preg_replace("`\s*`", " ", $v);
}
于 2009-12-09T19:59:02.393 回答
0

非正则表达式方式,

$string= "test : title=Diet    Coke";
$s = explode(":",$string);
$s[0]=trim($s[0]);
$s[1]=trim($s[1]);
print implode(":",$s);
于 2009-12-10T00:06:50.133 回答