2012-06-27 81 views
0

如何替換以'a'開始並以'z'結尾的字符串?將一個自定義字符串替換爲另一個自定義字符串

基本上我希望能夠做與str_replace相同的事情,但對「乾草堆」中兩個字符串之間的值無動於衷。

是否有內置函數?如果沒有,我將如何高效地完成一個完成它的功能?

+1

聽起來象是正規表達式 –

+1

你看着http://www.php.net/manual/en/ref.pcre.php – Fluffeh

回答

0
$string = "I really want to replace aFGHJKz with booo"; 
$new_string = preg_replace('/a[a-zA-z]+z/', 'boo', $string); 
echo $new_string; 

要警惕正則表達式,你想找到第一個z或最後一個z?它只是字母之間可以介於?字母數字?在我可以擴展正則表達式之前,需要解釋各種場景。

+0

完美。謝謝。當我可以的時候回答 – maxhud

+1

@Rawkode嘿,不是說這隻會匹配A和Z之間的字母字符,而不是所有可能成爲問題的符號。 –

+0

爲什麼''/ a [a-zA-z] + z /''?通過這樣做,您只允許在字符串中使用a-z和A-z字符。 ''/ A. * Z /''更好 –

0

使用preg_replace所以你可以使用正則表達式模式。

+0

你可以鏈接我一些很好的正則表達式教程 – maxhud

+0

他已經做了..不要告訴我你在2分鐘內讀過那個頁面 –

1

這可以用正則表達式(簡稱RegEx)來完成。 下面是一個簡單的例子:

$string = 'coolAfrackZInLife'; 
$replacement = 'Stuff'; 
$result = preg_replace('/A.*Z/', $replacement, $string); 
echo $result; 

上面的例子將返回coolStuffInLife

就有點解釋givven正則表達式/A.*Z/
        - 斜槓表示開始和結束正則表達式;
        - A和Z是您需要替換的開始和結束字符;
        - .匹配任何單個的性格特徵
        - *零個或多個指定的字符(在我們的情況 - 所有的)
        - 您可以選擇希望使用+而不是*,只有當它們之間存在某種差異時纔會匹配

請查看Rubular.com獲取簡單的wa y來測試您的RegEx。它還提供了短期的正則表達式參考

相關問題