Php 正则表达式和正斜杠

Php 正则表达式和正斜杠,php,regex,preg-replace,Php,Regex,Preg Replace,我正在通过正则表达式搜索字符串中的关键字。它适用于所有关键字,除了一个包含正斜杠的关键字:“time/emit” 即使使用preg_quote($find,“/”)(它逃避了它),我仍然能得到这样的信息: Unknown modifier 't' in /frontend.functions.php on line 71 如果我打印查找模式,它将显示/time\\/emit/。如果没有preg_quote,它将显示/time/emit/,并返回相同的错误消息 任何一点知识都是有用的。一点代码

我正在通过正则表达式搜索字符串中的关键字。它适用于所有关键字,除了一个包含正斜杠的关键字:“time/emit”

即使使用
preg_quote($find,“/”)
(它逃避了它),我仍然能得到这样的信息:

Unknown modifier 't' in /frontend.functions.php  on line 71
如果我打印查找模式,它将显示
/time\\/emit/
。如果没有preg_quote,它将显示
/time/emit/
,并返回相同的错误消息

任何一点知识都是有用的。

一点代码


该特定术语的“regex”应该类似于“/time/emit/”。有了一组关键字,可能会有一种更有效的方法,因此查看您正在做的事情会更好。

尝试使用不同于的符号开始和结束正则表达式/

我个人使用`

我见过有人使用#

我认为大多数的角色都很好。您可以在此处阅读更多信息:

像这样:

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

换言之:您的
$find
变量应该包含而不是/time/emit/

的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;

优雅的解决方案,解决了我所有的难题与斜杠字符。