替换PHP的多个实例

时间:2011-04-17 21:29:55

标签: php string replace preg-replace

我只是想知道如何使用php替换多个实例 -

例如说我有

test----test---3

我可以做什么来替换多个实例 - 只有1,所以它将是

test-test-3

谢谢:)

3 个答案:

答案 0 :(得分:6)

删除所有重复字符:

$string = 'test----test---3';
echo preg_replace('{(.)\1+}','$1',$string);

删除特定的重复字符:

$string = 'test----test---3';
echo eregi_replace("-{2,}", "-", $string);

删除'丑陋'方式的特定重复字符:

$string = 'test----test---3';
echo implode('-',array_filter(explode('-',$string)));

所有代码段的结果:

test-test-3

答案 1 :(得分:2)

...嗯

function replaceDashes($str){
    while(strpos($str,'--')!==false)
        $str=str_replace('--','-',$str);
    return $str;
}

你可以“更快”地取代:

        $str=str_replace('--','-',$str);

使用:

        $str=str_replace(array('----','---','--'),'-',$str);

答案 2 :(得分:0)

由于PHP5中不推荐使用ereg_replace和ereg_replace,您也可以尝试

preg_replace("/-{2,}/", "-", $string);

所以,如果你运行

preg_replace("/-{2,}/", "-", "--a--b---c----")

它会返回

-a-b-c-