Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式帮助:匹配路径(使用django)_Regex_Url_Django Urls - Fatal编程技术网

Regex 正则表达式帮助:匹配路径(使用django)

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/不匹配,因为?只对斜线有效 显然,我可以在多个方面做到这一点,但我确信有一种方法可以一

我讨厌提头衔。我需要一些能够捕捉以下内容的东西:

site.com/500/(数字作为第一个参数)

site.com/500/ABC/(一个数字和一个3个字母的代码)

site.com/500/ABC/DEF/(一个数字和2个3字母代码)

我一直在搞的是:

^(\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似乎不太有效。我应该在原始帖子中详细说明,但也谢谢你的帮助。