我正在通过正则表达式搜索字符串中的关键字。它适用于所有关键字,并在其中包含一个正斜杠:“time / emit”。
即使使用逃脱它的preg_quote($find,'/')
,我仍然会收到消息:
Unknown modifier 't' in /frontend.functions.php on line 71
如果我打印查找模式,则会显示/time\\/emit/
。如果没有preg_quote,它会显示/time/emit/
并且都返回相同的错误消息。
任何一点知识都会有用。
答案 0 :(得分:39)
尝试使用与/
不同的符号开始和结束正则表达式我个人使用`
我见过有人使用#
我认为大多数人都很好。您可以在此处详细了解:http://pl.php.net/manual/en/regexp.reference.delimiters.php
像这样:
preg_match('#time/emit#', $subject); // instead of /time/emit/
换句话说:你的$find
变量应该包含#time / emit#than / time / emit /
答案 1 :(得分:2)
看起来你已经有一些东西已经逃脱了..
preg_quote('time/emit') // returns time\/emit
preg_quote('time\/emit') // returns time\\/emit
作为一个黑客你可以简单地做:
preg_quote(stripslashes($find)) // will return time\/emit
答案 2 :(得分:0)
一点代码?
该特定术语的“正则表达式”应该类似于“/ time / emit /”。使用一组关键字可能会有一种更有效的方法,因此看到你正在做的事情会很好。
答案 3 :(得分:0)
这应该有效:
$a="Hello////////";
$b=str_replace($a,"//","/");
echo $b;