2016-05-13 29 views
-1

基本上我想更換像所有的話:測試somewordbleble如何使用正則表達式/ PHP /的preg_replace替換所有比賽

問題是,我正在使用的正則表達式,只替換其中一個詞,第一個找到的。任何人都可以幫我解決這個問題嗎?

$string = 'http://nu/style/test/someword/bleble'; 
preg_replace('/(test|someword|bleble)/','',$string); 

最好的問候, Mateusz

+1

因此,請參閱https://ideone.com/ArrsJz - 它正在刪除它們 –

+1

那麼,預期的輸出是什麼? –

+0

我認爲,你的代碼工作正常。您的代碼將輸出:'http:// nu/style ///' – pes502

回答

1

您可以使用array()您模式。您需要一個陣列用於模式,可能會被替換,另一個陣列用於替換。

$string = 'http://nu/style/test/someword/bleble'; 
$patterns = array(
    "/test/", 
    "/someword/", 
    "/bleble/" 
); 

$replacements = array(
    "", 
    "", 
    "" 
); 

preg_replace($patterns, $replacements, $string); 

當然,如果你想用同一個詞來替換所有$patterns,你可以使用:

preg_replace($patterns, " ", $string); 

OUTPUT:http://nu/style///

2

您可以使用一個數組來解決問題。

$string = "http://nu/style/test/someword/bleble"; 
$remove = array("/test/", "someword/", "bleble"); 

$result = str_replace($remove, ' ', $string); 
相關問題