【问题标题】:Check if a String has two or more commas and remove additional commas [duplicate]检查字符串是否有两个或多个逗号并删除额外的逗号 [重复]
【发布时间】:2013-10-07 12:05:43
【问题描述】:

我在名为“alerts”的数据库列中关注了字符串

$string = '1,2,,3,4,5,,,6';

我将如何检查该字符串在数字之间是否有两个或多个逗号,以及如何删除额外的逗号以使字符串像这样;

$string = '1,2,3,4,5,6';

【问题讨论】:

标签: php regex string replace comma


【解决方案1】:

您应该为此使用正则表达式。

preg_replace('/,,+/', ',', $string);

如果你不熟悉正则表达式,你应该google一下。教程有很多,一旦你熟悉了它们,你就可以用它们做很多事情。

【讨论】:

    【解决方案2】:

    使用此代码:

    $string = '1,2,,3,4,5,,,6';
    $arr=explode(",",$string);
    $string=implode(",",array_filter($arr));
    

    或者,在一行中

    $string = implode(",",array_filter(explode(",",$string)));
    

    【讨论】:

    • 它工作,你有一个很好的编码背景帕特尔:)
    • preg_replace 比这更快(3 个不同的功能)。
    【解决方案3】:

    试试这个:

    $text = '1,2,,3,4,5,,,6,,2,,1,,2,9';
    $textArray = preg_split("/[,.]+/", $text);
    $textArray = array_filter($textArray);
    echo implode(",", $textArray);
    

    Output:1,2,3,4,5,6,2,1,2,9

    如果你想要独特的元素,那么第二行将是

    $textArray = array_unique(preg_split("/[,.]+/", $text));
    

    【讨论】:

    • 如果浮点数也在文本中,此示例将无效。
    【解决方案4】:

    这也可以,无需加载正则表达式引擎的开销。

    $string = '1,2,,3,4,5,,,6';
    
    do {
        $string = str_replace(',,', ',', $string, $count);
    } while ( $count > 0 );
    
    echo $string;
    

    输出:

      1,2,3,4,5,6
    

    【讨论】:

    • 它输出什么?对不起,我没有测试,只是想知道增加我的 PHP 知识。谢谢!
    猜你喜欢
    • 2014-02-11
    • 2023-01-31
    • 2012-12-03
    • 1970-01-01
    • 2015-10-28
    • 2019-08-29
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    相关资源
    最近更新 更多