Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php删除多余的空格_Php - Fatal编程技术网

php删除多余的空格

php删除多余的空格,php,Php,我试图从字符串中删除多余的空格,如下所示: 你好,世界 到 你好,世界 有人知道如何在PHP中实现这一点吗?使用regexp: preg_replace('/( )+/', ' ', $string); 如果还要删除每个多个白色字符,可以使用\s(\s是白色字符) 您还可以使用+量词,因为它总是用替换它。然而,我发现{2,}更清楚地表明了您的意图。有一个关于如何去除文档中多余空白的示例不是PHP专家,但他的工作听起来像是正则表达式的工作 <?php $string = 'Hello

我试图从字符串中删除多余的空格,如下所示:

你好,世界

你好,世界

有人知道如何在PHP中实现这一点吗?

使用regexp:

preg_replace('/( )+/', ' ', $string);
如果还要删除每个多个白色字符,可以使用\s(\s是白色字符)


您还可以使用
+
量词,因为它总是用
替换它。然而,我发现
{2,}
更清楚地表明了您的意图。

有一个关于如何去除文档中多余空白的示例

不是PHP专家,但他的工作听起来像是正则表达式的工作

<?php
$string = 'Hello     World     and Everybody!';
$pattern = '/\s+/g';
$replacement = ' ';
echo preg_replace($pattern, $replacement, $string);
?>


同样,PHP不是我的语言,但我的想法是用单个空格替换多个空格。
\s
代表空格,
+
表示一个或多个空格。末尾的
g
表示全局执行(即不止一次)。

示例中有
\s\s+
。为什么?如果他们用星号而不是加号,我能理解。星号表示零次或多次出现。因此,您必须将正则表达式加倍。但是,加号表示一个或多个。有什么特别的原因吗?它应该仍然有效,但似乎没有必要。我认为原因是要使它只匹配2个或更多的空格——如果只有一个空格,就不需要进行替换。顺便说一句,这相当于alex的回答中的
\s{2,}
。尝试了这个方法,但没有删除文本开头或结尾的空格。如果字符串是
$str='Text with a low of spaces'
,它返回
“包含大量空格的文本”
。我希望
“文本中有很多空格”
@Mai这是因为代码没有删除空格,而是将它们折叠成一个空格。如果要修剪字符串,请使用
trim()
。正则表达式中的括号不是必需的。
$str = 'Why   do I
          have  so much white   space?';

$str = preg_replace('/\s{2,}/', ' ', $str);

var_dump($str); // string(34) "Why do I have so much white space?"
<?php
$string = 'Hello     World     and Everybody!';
$pattern = '/\s+/g';
$replacement = ' ';
echo preg_replace($pattern, $replacement, $string);
?>