用于检测指定 url 的正则表达式

发布于 2024-11-15 22:21:26 字数 178 浏览 2 评论 0原文

我想使用 preg_match 过滤像 bartender/profili/20/friends 这样的 url。

正则表达式:

/^\/bartender\/profili\/d+\/friends/

不幸的是它不起作用。

有人可以帮忙吗?

I want to filter url's like bartender/profili/20/friends using preg_match.

Regex:

/^\/bartender\/profili\/d+\/friends/

Unfortunately it doesn't work.

Could somebody help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(6

无风消散 2024-11-22 22:21:27

您想捕获 \d+ 吗?如果是这样,请将它们括在 ( ) 中,这样就可以解决问题。另外,如果你的正则表达式使用 /,我建议使用不同的分隔符,减少这样的转义:

<?php
preg_match( 
    '~^/bartender/profili/(\d+)/friends~', 
    '/bartender/profili/20/friends', 
    $matches 
);

var_dump( $matches );

附录:并且 - 就像每个人已经提到的 - 你确实忘记了 d+ 前面的 \ ,但如果你必须转义每个 / ,那么这一点很容易被忽视;)

Do you want to capture the \d+? If so, enclose them in ( ), that should fix it. Also, if you're regex uses /, I'd suggest using a different delimiter, less escaping that way:

<?php
preg_match( 
    '~^/bartender/profili/(\d+)/friends~', 
    '/bartender/profili/20/friends', 
    $matches 
);

var_dump( $matches );

Addendum: and - like everyone already mentioned - you indeed forgot the \ in front of the d+, but that was easy to overlook if you have to escape every / ;)

弃爱 2024-11-22 22:21:27

您在 d+ 前面有一个斜杠(并且为此情况选择了一个难以阅读的分隔符)。试试这个:

#^\/bartender\/profili\/\d+\/friends#

You have a slash in front of d+ (and have selected a badly readable delimiter for this situation). Try this:

#^\/bartender\/profili\/\d+\/friends#

紫罗兰の梦幻 2024-11-22 22:21:27

你忘记转义 \d+

/^\/bartender\/profili\/\d+\/friends/

you forgot to escape \d+

/^\/bartender\/profili\/\d+\/friends/
焚却相思 2024-11-22 22:21:27

您在 d+ 之前缺少一个反斜杠:\d+

You are missing a backslash before d+: \d+

我恋#小黄人 2024-11-22 22:21:27

bartender\/profili\/[0-9]+\/friends”也有效。这是尝试正则表达式的绝佳资源:http://www.regextester.com/

"bartender\/profili\/[0-9]+\/friends" also works. Here's an excellent resource for trying regular expressions: http://www.regextester.com/

清眉祭 2024-11-22 22:21:27

您不必转义正斜杠,但需要转义元字符(例如表示十进制数字的“d”)

^/bartender/profili/\d+/friends/

You do not have to escape forward slashes, but you need to escape meta-characters (like 'd' for decimal digits)

^/bartender/profili/\d+/friends/

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