我正在通過正則表達式搜索字符串中的關鍵字。它適用於所有關鍵字,可以在其中包含正斜槓:「time/emit」。正則表達式和正斜槓
即使使用preg_quote($find,'/')
,從而逃脫它,我仍然得到消息:
Unknown modifier 't' in /frontend.functions.php on line 71
如果我打印發現模式,它顯示。沒有preg_quote,它會顯示/time/emit/
,並且兩者都返回相同的錯誤消息。
任何一點知識都是有用的。
我正在通過正則表達式搜索字符串中的關鍵字。它適用於所有關鍵字,可以在其中包含正斜槓:「time/emit」。正則表達式和正斜槓
即使使用preg_quote($find,'/')
,從而逃脫它,我仍然得到消息:
Unknown modifier 't' in /frontend.functions.php on line 71
如果我打印發現模式,它顯示。沒有preg_quote,它會顯示/time/emit/
,並且兩者都返回相同的錯誤消息。
任何一點知識都是有用的。
嘗試開始和不同的標識尾部正則表達式比/
我個人使用`
我使用#
見過的人,我認爲大多數字符都不錯。你可以閱讀更多關於它在這裏:http://pl.php.net/manual/en/regexp.reference.delimiters.php
像這樣:
preg_match('#time/emit#', $subject); // instead of /time/emit/
換一種方式:您$find
變量應該包含相當#時間/發射#比/時間/發射/
點點代碼?
該特定術語的'正則表達式'應該看起來像'/ time/emit /'。有了一組關鍵詞,可能會有更高效的方法,所以看到你在做什麼會很好。
看起來你有一些已經逃離吧..
preg_quote('time/emit') // returns time\/emit
preg_quote('time\/emit') // returns time\\/emit
,你可以簡單地做一個黑客:
preg_quote(stripslashes($find)) // will return time\/emit
這應該工作:
$a="Hello////////";
$b=str_replace($a,"//","/");
echo $b;
後面打勾做的伎倆! – pixeline 2010-06-29 23:35:04
優雅的解決方案,用斜線字符解決了我所有的麻煩。 – Seth 2012-09-25 23:59:33