检查字符串是不是有两个或多个逗号并删除额外的逗号 [重复]
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 知识。谢谢!以上是关于检查字符串是不是有两个或多个逗号并删除额外的逗号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章