2011-04-17 87 views
2
的多个实例

我只是想知道我怎么能代替的多个实例 - 只用一个使用PHP,替换PHP

例如说我有

test----test---3 

我还能有什么来取代的多个实例 - 只需1所以这将是

test-test-3 

谢谢:)

回答

6

删除所有repeati纳克字符:

$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 
+0

的事情是我只是想不更换-'s其他字符,任何想法,这样做只是它的-'s ? – 2011-04-17 21:35:09

+0

更新的答案:) – Anne 2011-04-17 21:56:40

2

呃...

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

你可以把它 “快” 来代替:

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

有了:

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

由于eregi_replace和ereg_replace在PHP5折旧,你也可以尝试

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

所以,如果你运行

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

它将返回

-ABC-