【问题标题】:URL routing regexURL 路由正则表达式
【发布时间】:2012-10-24 00:06:54
【问题描述】:

我正在尝试创建一个匹配 URL 路由的正则表达式的 sn-p。

基本上,如果我有这条路线 /users/:id 我希望 /users/100 匹配,但 /users/100/edit 不匹配。

这是我现在使用的:users/(.*)/,但由于贪婪匹配,无论用户 ID 后面是什么,它都会匹配。如果路线尽头有/edit 或其他东西,我需要某种“破坏”比赛的方法。

我研究了 Regex NOT 运算符,但没有运气。

有什么建议吗?

【问题讨论】:

    标签: php regex routes


    【解决方案1】:

    你只是想收集数字吗?

    你可以使用users/(\d*)/

    如果您想收集直到/ 之前的所有内容,并且它使用NOT ^/users/[^/]*$,这就是您的做法

    【讨论】:

    • 必须稍微修改一下以供我使用:^/users/[^/]*/$ 但这正是我需要知道的,谢谢! :)
    【解决方案2】:

    您可以使用负前瞻:

    users/(.*)/(?!edit)

    然而,这总是需要一个斜杠。也许更好的解决方案是:

    users/(\d+)(?!/edit)

    更多信息请参见this post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-10
      • 2013-10-22
      • 1970-01-01
      • 2020-10-10
      • 2019-01-01
      • 2014-04-14
      • 2012-09-23
      相关资源
      最近更新 更多