0

配列の例のエントリ:

test : title=Diet    Coke

なる

test:title=Diet Coke
4

4 に答える 4

5

正規表現を使用するこのアプローチでは、1つの文字列のみを処理しますが、配列を実行する場合は、配列を反復処理して、これを各文字列に適用します。

$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 に答える