我正在通过正则表达式搜索字符串中的关键字。它适用于所有关键字,可以在其中包含正斜杠:“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