【问题标题】:Php replace multiple spaces with single spacesphp用单个空格替换多个空格
【发布时间】:2013-11-25 14:47:09
【问题描述】:

如何添加一些东西来替换字符串中的所有多个空格,而下面的正则表达式中只有一个空格?以下代码中的所有其他内容都需要保持原样。我只是想添加替换多个空格部分。

其中的另一部分用一个连字符替换多个连字符。

$name = preg_replace('#[ -]+#', '-', $rawName);

【问题讨论】:

标签: php regex


【解决方案1】:

使用preg_replace()

$name = preg_replace('#\s+#', ' ', $rawName);

【讨论】:

  • 实际上,我在问如何将其添加到我拥有的现有代码中。现在看来我所有的连字符都不见了。所以我这样做了:echo preg_replace('#[ -\s]+#','-',$rawName);,但这是正确的做法吗?
  • @jmenezes $name = preg_replace('#[ -]+#', '-', $rawName); 会将所有空格替换为连字符。您的问题是如何将多个空格替换为一个。将上面发布的答案行放在$name = preg_replace('#[ -]+#', '-', $rawName); 行。
  • 你有两件事要做。 1. 将所有多空格替换为 1 和 2. 将所有空格替换为连字符。对吗?
  • @jmenezes 如果是这样的话,你能不能试试这个只替换你到达那里的行 - $name = preg_replace('#\s+#', '-', $rawName);
  • 第二条评论中的解决方案效果很好。只是一个小问题,可以按照我在第一条评论中发布的方式进行吗?
【解决方案2】:

试试这个: 应该在单词之间只保留一个空格

{
 $var = str_replace(' ','',$var);
}

【讨论】:

  • 这只会从每组中减少一个空格,并且所有单个空格都会消失!...
【解决方案3】:

试试这个

$str = preg_replace( "/\s+/", " ", $data );

【讨论】:

    【解决方案4】:
    $output = preg_replace('!\s+!', ' ', $input);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2011-01-05
      相关资源
      最近更新 更多