2011-08-22 61 views
2

我想下面ereg()調用轉換爲使用preg_match()代替:錯誤更新EREG調用中使用的preg_match代替

if (ereg('(.*/)(.*)$',$fileref,$reg) ) { 

這是preg_match()呼叫我試圖來取代它:

if (preg_match('(.*/)(.*)$',$fileref,$reg) ) { 

當我運行這段代碼,我出現以下錯誤:

preg_match(): Unknown modifier '(' 

導致此錯誤的ereg()preg_match()之間的語法有什麼區別?

+1

的可能重複的[轉換EREG表達式來預浸](http://stackoverflow.com/questions/6270004/converting-ereg-expressions-to-preg) – hakre

回答

3
preg_match('~(.*/)(.*)$~',$fileref,$reg) 

您必須定義分隔符。我用~,但你可以使用任何你喜歡的分隔符(它總是第一個字符)。模式本身必須以分隔符結束(但修飾符可以跟隨),並且在模式內使用時必須轉義分隔符。

但值得一提的是:該模式只是尋找/,因此正則表達式只是過大。

if (strpos($fileref, '/') !== false) { /* do something */ }