检查字符串是不是有两个或多个逗号并删除额外的逗号 [重复]

Posted

技术标签:

【中文标题】检查字符串是不是有两个或多个逗号并删除额外的逗号 [重复]【英文标题】: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';

【问题讨论】:

***.com/questions/14417951/… ***.com/questions/16687389/… 【参考方案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 知识。谢谢!

以上是关于检查字符串是不是有两个或多个逗号并删除额外的逗号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果有多个,则匹配所有逗号

删除 implode 之前或之后由数组引起的所有逗号

PL/SQL 逗号分隔列表;删除重复并放入数组

正则表达式匹配两个或多个逗号分隔的整数

逗号分隔值 sql

Internet Explorer 9 是不是会在数组和对象文字末尾的额外逗号上阻塞?