2010-06-03 16 views
1

我想要一個名爲$ encoded_str的變量,並刪除第一個「l」和最後一個空格之間的cd1,CD1和任何東西。因此,例如「lp6 id4 STRINGcd1」將返回「STRING」。如何使用preg_replace編寫「X和Y之間的所有內容」的正則表達式

我使用PHP 4,所以我現在不能使用str_ireplace,我有這樣的:

$encoded_str=str_replace('CD1','',$encoded_str); 
$encoded_str=str_replace('cd1','',$encoded_str); 
$encoded_str=preg_replace('X','',$encoded_str); 

我已經RTM的preg_replace函數,但我有點困惑。我應該用什麼替換X,並且能否爲編寫正則表達式提供一個體面的介紹性入門書?

+0

這將取決於什麼'STRING'可以包含。它是字母數字嗎?只是信件?任何特殊符號? – eykanal 2010-06-03 17:08:50

回答

0
$encoded_str=preg_replace('/l.*(?<=\s)/','',$encoded_str); 

上述正則表達式將字符串到最後一個空白的匹配從第一l什麼。它使用積極的lookbehind來匹配空白字符的位置,作爲消耗字符串第一部分的.*的終點。由於.*是貪婪的,因此後向將匹配最後一個空白字符。

至於參考,這些頁面都是偉大的:

http://www.regular-expressions.info/tutorial.html

相關問題