我有一個像這樣的字符串text more text "empty space"
。 如何更換"empty space"
中的空格,並且只有###這個空格?使用###替換空字符在PHP中的字符串「」之間的文本
回答
這個怎麼樣,有沒有正則表達式:
$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;
似乎工作。謝謝! – user998163 2012-01-03 22:40:21
$somevar = "empty space";
$pattern = "/\s/";
$replacement = "###";
$somevar2 = preg_replace($pattern, $replacement, $somevar);
echo $somevar2;
這將做所有的空間。如果這是一個大塊文本,模式將是空的\ sspace和替換將是空的###空間 – 2012-01-03 22:11:17
請看看我上面的評論。 – user998163 2012-01-03 22:14:19
$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-03 22:11:50
請看看我上面的評論。 – user998163 2012-01-03 22:14:35
$string = 'text more text "empty space"';
$search = 'empty space';
str_replace($search, 'empty###space', $string);
+1在沒有必要時不使用正則表達式 – 2012-01-03 22:15:03
@George文本將被改變...「空白空間」僅用於演示 – user998163 2012-01-03 22:17:29
@ user1067506我從您的評論中看到,這在原始文章中並不清楚。處理另一個解決方案。 – 2012-01-03 22:18:12
後您編輯評論
也許它不是最好的解決辦法,但你可以做這樣的:
$string = 'text more text "empty space"';
preg_match('/(.*)(".*?")$/', $string, $matches);
$finaltext = $matches[1] . str_replace(' ', '###', $matches[2]);
請不要在您的文章上簽名。 – 2012-01-03 22:07:38
我只想替換「」之間的文本空格。所以reult應該看起來像文本更多的文字「空###空間」 – user998163 2012-01-03 22:13:36
這個問題是總體混亂。而不是「文本更多文本」..提供一個真正的Exaple。 「這是一個文本字符串,我希望它以某種方式被改變。」這顯示字符串確切地如何改變。 – 2012-01-03 22:32:21