如何删除字符串中使用的重复逗号。
String =“,a,b,c ,,, d ,,”
我尝试了rtrim和itrim函数并从开头和结尾删除了不需要的逗号。如何删除重复的逗号?
答案 0 :(得分:14)
试试这个:
$str = preg_replace('/,{2,}/', ',', trim($str, ','));
trim
将删除逗号和尾随逗号,而preg_replace
将删除重复的逗号。
另外,正如@Spudley建议的那样,正则表达式/,{2,}/
可以替换为/,,+/
,它也会起作用。
编辑:
如果逗号之间有空格,您可以尝试在上面的行之后添加以下行:
$str = implode(',', array_map('trim', explode(',', $str)))
答案 1 :(得分:4)
我认为你可以爆炸你的字符串,然后创建一个只获取相关数据的新字符串
$string = ",a,b,c,,,d,,";
$str = explode(",", $string);
$string_new = '';
foreach($str as $data)
{
if(!empty($data))
{
$string_new .= $data. ',';
}
}
echo substr_replace($string_new, '', -1);
这将输出
a,b,c,d
EDITED
如果您遇到空格问题,可以尝试使用此代码
$string = ",a,b,c, ,,d,,";
$str = explode(",", str_replace(' ', '', $string));
$string_new = '';
foreach($str as $data)
{
if(!empty($data))
{
$string_new .= $data. ',';
}
}
echo substr_replace($string_new, '', -1);
这应解决空间问题
答案 2 :(得分:2)
可能不是很快,但一个简单的方法可能是:
$str = "a,b,c,,,d";
$str2 = "";
while($str <> $str2) {
$str2 = $str;
$str = str_replace(',,', ',', $str);
}
答案 3 :(得分:0)
<?php
$str = ",a,b,c,,,d,,"
echo $str=str_replace(',,','',$str);
?>
<强>输出:强> 中,a,B,C,d
<?php
$str = ",a,b,c,,,d,,"
echo $str=trim(str_replace(',,','',$str),',');
?>
<强>输出:强> A,B,C,d