【问题标题】:Remove space/spaces between two words删除两个单词之间的空格/空格
【发布时间】:2011-05-21 03:03:06
【问题描述】:

我想要这个出来

Input              =|= Output  
=============================================
[b] [/b]           =|= [b][/b]
[b]      [/b]      =|= [b][/b]
[b]Hii[/b]         =|= [b]Hii[/b]  
[b]Hello There[/b] =|= [b]Hello There[/b]

我认为解决这个问题的唯一方法是我不知道写的正则表达式,所以寻求帮助

【问题讨论】:

  • 在最后一个例子中,你还想要“Hello”和“There”之间的空格吗?
  • 是的,想要单词之间的空格
  • 好的 - 我不会编辑我的答案,因为看起来你有几个选项可供选择,有人可能会发现它正在寻找一个通用空间来替换 js sn-p - 我喜欢 @mVChr 解决方案
  • 对于您的情况,您不需要 php 中的正则表达式,请参阅我的答案

标签: php javascript regex


【解决方案1】:
input = input.replace(/\[b\]\s+\[\/b\]/ig, '[b][/b]');

Demo →

【讨论】:

    【解决方案2】:

    对于 JavaScript:

    input = input.replace(/\[b\](?: |\s)+?\[\/b\]/gi, '[b][/b]');
    

    对于 PHP:

    $input = preg_replace('/\[b\](?: |\s)+?\[\/b\]/i', '[b][/b]', $input);
    

    以上包括 ,因为之前的示例显示了这一点。如果不需要,只需使用:

    对于 JavaScript:

    input = input.replace(/\[b\]\s+?\[\/b\]/gi, '[b][/b]');
    

    对于 PHP:

    $input = preg_replace('/\[b\]\s+?\[\/b\]/i', '[b][/b]', $input);
    

    但这些只会捕获空白而不是尾随。

    捕捉尾随...

    对于 JavaScript:

    input = input.replace(/\[b\](.+?)\[\/b\]/gi, function (n0, n1) {
        return '[b]' + n1.replace(/^\s+|\s+$/g, '') + '[/b]';
    });
    

    对于 PHP:

    $input = preg_replace_callback('/\[b\](.+?)\[\/b\]/i', 
        create_function(
            '$m',
            'return "[b]".trim($m[1])."[/b]";'
        ), 
        $input);
    

    【讨论】:

      【解决方案3】:

      input.replace(/\s+/g,'') 将删除所有空格(这听起来像是您正在尝试做的),即使您的最后一个示例让我感到困惑

      【讨论】:

        【解决方案4】:

        嗯..当我阅读您的问题时,我想我明白您的意思,但是您的示例让我很困惑。 您同时编写了 PHP 和 Javascript... 如果你想这样做是 PHP 使用 preg_replace() $str = '你要解析的值';

        $new_value = preg_replace('/\s\s+/', '', $str);

        希望这会有所帮助! :)

        【讨论】:

          【解决方案5】:

          应该这样做:

          preg_replace ("/\s+/", "\s", $subject);
          preg_replace ("/\]\s+\[/", "\]\[", $subject);
          

          这可以用一个正则表达式完成,但通过 2 次就更容易理解。

          【讨论】:

            【解决方案6】:

            您似乎只是想去掉字符串前后的空格。

            在 php 中有一个本地函数可以做到这一点

            trim() Read here

            Here is an example:
            
            $string = ' Hello World!      ';
            
            $trimmed = trim($string);
            
            echo $trimmed;
            // will print 'Hello World'
            

            【讨论】:

              猜你喜欢
              • 2014-07-30
              • 1970-01-01
              • 2016-06-10
              • 2014-10-01
              • 1970-01-01
              • 1970-01-01
              • 2016-04-16
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多