2010-06-29 221 views
15

我正在通過正則表達式搜索字符串中的關鍵字。它適用於所有關鍵字,可以在其中包含正斜槓:「time/emit」。正則表達式和正斜槓

即使使用preg_quote($find,'/'),從而逃脫它,我仍然得到消息:

Unknown modifier 't' in /frontend.functions.php on line 71 

如果我打印發現模式,它顯示​​。沒有preg_quote,它會顯示/time/emit/,並且兩者都返回相同的錯誤消息。

任何一點知識都是有用的。

回答

31

嘗試開始和不同的標識尾部正則表達式比/

我個人使用`

我使用#

見過的人,我認爲大多數字符都不錯。你可以閱讀更多關於它在這裏:http://pl.php.net/manual/en/regexp.reference.delimiters.php

像這樣:

preg_match('#time/emit#', $subject); // instead of /time/emit/ 

換一種方式:您$find變量應該包含相當#時間/發射#比/時間/發射/

+0

後面打勾做的伎倆! – pixeline 2010-06-29 23:35:04

+0

優雅的解決方案,用斜線字符解決了我所有的麻煩。 – Seth 2012-09-25 23:59:33

0

點點代碼?

該特定術語的'正則表達式'應該看起來像'/ time/emit /'。有了一組關鍵詞,可能會有更高效的方法,所以看到你在做什麼會很好。

2

看起來你有一些已經逃離吧..

preg_quote('time/emit') // returns time\/emit 
preg_quote('time\/emit') // returns time\\/emit 

,你可以簡單地做一個黑客:

preg_quote(stripslashes($find)) // will return time\/emit 
0

這應該工作:

$a="Hello////////"; 
$b=str_replace($a,"//","/"); 
echo $b; 
相關問題