正则表达式和正斜杠
我正在通过正则表达式在字符串中搜索关键字。它适用于所有关键字,除了其中包含正斜杠的关键字:“time/emit”。
即使使用 preg_quote($find,'/')
来转义它,我仍然收到消息:
Unknown modifier 't' in /frontend.functions.php on line 71
如果我打印查找模式,它会显示 /time\\/emit/ .如果没有 preg_quote,它会显示
/time/emit/
并且都返回相同的错误消息。
任何一点知识都会有用。
i'm searching for keywords in a string via a regular expression. It works fine for all keywords, exept one which contains a forward slash in it: "time/emit" .
Even using preg_quote($find,'/')
, which escapes it, i still get the message:
Unknown modifier 't' in /frontend.functions.php on line 71
If i print the find pattern, it shows /time\\/emit/
. Without preg_quote, it shows /time/emit/
and both return the same error message.
Any bit of knowledge would be useful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不同的符号开始和结束正则表达式
尝试使用与 /我个人使用的
`我见过人们使用 #
我认为大多数字符都很好。您可以在这里阅读更多相关信息: http://pl.php.net /manual/en/regexp.reference.delimiters.php
像这样:
换句话说:您的
$find
变量应该包含 #time/emit# 而不是 /time/emit/Try to begin and end your regular expression with different sign than /
I personally use `
I've seen people using #
I think most chars are good. You can read more about it here: http://pl.php.net/manual/en/regexp.reference.delimiters.php
Like this:
To put it another way: Your
$find
variable should contain rather #time/emit# than /time/emit/看起来你已经有一些东西正在逃避它..
作为一种黑客,你可以简单地执行以下操作:
looks like you have something already escaping it..
as a hack you could simply do:
一点代码?
该特定术语的“正则表达式”应类似于“/time/emit/”。有了一组关键字,可能会有一种更有效的方法,所以看看你在做什么会很好。
bit of code?
the the 'regex' for that particular term should look something like '/time/emit/'. With a set of keywords there may be a more efficient method so seeing what you are doing would be good.
这应该有效:
this should work: