2011-04-17 32 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-