Regex 正则表达式帮助:匹配路径(使用django)
我讨厌提头衔。我需要一些能够捕捉以下内容的东西: site.com/500/(数字作为第一个参数) site.com/500/ABC/(一个数字和一个3个字母的代码) site.com/500/ABC/DEF/(一个数字和2个3字母代码) 我一直在搞的是:Regex 正则表达式帮助:匹配路径(使用django),regex,url,django-urls,Regex,Url,Django Urls,我讨厌提头衔。我需要一些能够捕捉以下内容的东西: site.com/500/(数字作为第一个参数) site.com/500/ABC/(一个数字和一个3个字母的代码) site.com/500/ABC/DEF/(一个数字和2个3字母代码) 我一直在搞的是: ^(\d+/)?(\w{3}/)?(\w{3}/)?$ 这样做是可行的,但在参数中包含斜杠(因此我以“500/”结尾)。将斜杠移到括号外与/500/ABC/不匹配,因为?只对斜线有效 显然,我可以在多个方面做到这一点,但我确信有一种方法可以一
^(\d+/)?(\w{3}/)?(\w{3}/)?$
这样做是可行的,但在参数中包含斜杠(因此我以“500/”结尾)。将斜杠移到括号外与/500/ABC/不匹配,因为?只对斜线有效
显然,我可以在多个方面做到这一点,但我确信有一种方法可以一次性做到这一点
同样,我只想要实际的参数,因为正如我所说的,它可以工作,但最终会添加斜杠,这不太好
谢谢你的帮助。怎么样
((\d+/)|(\d+/\w{3}/)|(\d+/\w{3}/\w{3}/))$
结果将是
site.com/500/ABC/DEF/ => 500/ABC/DEF/
site.com/500/ABC/ => 500/ABC/
site.com/500/ = 500/
请记住,您可以嵌套组,这样您就可以拥有
((\w{3}/)?
等等。。这似乎奏效了。我不知道为什么我以前没有试过,非常感谢。从我的测试来看,这似乎确实有效,但在django似乎不太有效。我应该在原始帖子中详细说明,但也谢谢你的帮助。