正则表达式和正斜杠

发布于 2024-09-07 13:04:59 字数 352 浏览 6 评论 0原文

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

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

停滞 2024-09-14 13:04:59

不同的符号开始和结束正则表达式

尝试使用与 /我个人使用的

`我见过人们使用 #

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

像这样:

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

换句话说:您的 $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:

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

To put it another way: Your $find variable should contain rather #time/emit# than /time/emit/

九八野马 2024-09-14 13:04:59

看起来你已经有一些东西正在逃避它..

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

作为一种黑客,你可以简单地执行以下操作:

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

looks like you have something already escaping it..

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

as a hack you could simply do:

preg_quote(stripslashes($find)) // will return time\/emit
灯下孤影 2024-09-14 13:04:59

一点代码?

该特定术语的“正则表达式”应类似于“/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.

秋日私语 2024-09-14 13:04:59

这应该有效:

$a="Hello////////"; 
$b=str_replace($a,"//","/");
echo $b;

this should work:

$a="Hello////////"; 
$b=str_replace($a,"//","/");
echo $b;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文