我有一个像这样的字符串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