正则表达式和正斜杠

2022-08-30 20:46:27

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

即使使用,它转义了它,我仍然得到消息:preg_quote($find,'/')

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

如果我打印查找模式,它显示.如果没有preg_quote,它将显示并返回相同的错误消息。/time\\/emit//time/emit/

任何一点知识都会有用。


答案 1

尝试以与 / 不同的符号开始和结束正则表达式

我个人使用 '

我见过有人使用#

我认为大多数字符都很好。您可以在此处阅读更多相关信息:http://pl.php.net/manual/en/regexp.reference.delimiters.php

喜欢这个:

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

换句话说:你的变量应该包含#time/emit#而不是/time/emit/$find


答案 2

看起来你已经逃脱了它。

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

作为一个黑客,你可以简单地做:

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

推荐