0

このような文字列がありますtext more text "empty space""empty space"このスペースのみを ###に置き換えるにはどうすればよいですか?

4

5 に答える 5

3
$string = 'text more text "empty space"';
$search = 'empty space';
str_replace($search, 'empty###space', $string);
于 2012-01-03T22:10:10.260 に答える
1

正規表現なしで、これはどうですか:

$text = 'foo bar "baz quux"';
$parts = explode('"', $text);
$inQuote = false;

foreach ($parts as &$part) {
    if ($inQuote) { $part = str_replace(' ', '###', $part); }
    $inQuote = !$inQuote;
}

$parsed = implode('"', $parts);
echo $parsed;
于 2012-01-03T22:30:14.887 に答える
1
$somevar = "empty space";
$pattern = "/\s/";
$replacement = "###";
$somevar2 = preg_replace($pattern, $replacement, $somevar);
echo $somevar2;
于 2012-01-03T22:08:48.373 に答える
1
$string = "My String is great";
$replace = " ";
$replace_with = "###";

$new_string = str_replace($replace, $replace_with, $string);

これでうまくいくはずです。http://www.php.net/manual/en/function.str-replace.php

于 2012-01-03T22:09:20.893 に答える
1

コメント後に編集

最善の解決策ではないかもしれませんが、次のようにすることができます。

$string = 'text more text "empty space"';
preg_match('/(.*)(".*?")$/', $string, $matches);
$finaltext = $matches[1] . str_replace(' ', '###', $matches[2]);
于 2012-01-03T22:10:19.470 に答える