可选命名组Python re
在Django URL中,我需要一个可选的命名组。此不带参数的conf引发了404异常:可选命名组Python re,python,regex,django,Python,Regex,Django,在Django URL中,我需要一个可选的命名组。此不带参数的conf引发了404异常: r'^list_cv/(?P<category>[\d]+)?/$' r'^list\u cv/(?P[\d]+)?/$' 如何创建可选的命名组 最后一个斜杠应该是可选RE的一部分,RE应该是 r'^list_cv/(?:(?P<category>[\w+])?/)$' r'^list\u cv/(?:(?P[\w+])?/)$' 不过,我没有对它进行测试。我发现,为url创
r'^list_cv/(?P<category>[\d]+)?/$'
r'^list\u cv/(?P[\d]+)?/$'
如何创建可选的命名组 最后一个斜杠应该是可选RE的一部分,RE应该是
r'^list_cv/(?:(?P<category>[\w+])?/)$'
r'^list\u cv/(?:(?P[\w+])?/)$'
不过,我没有对它进行测试。我发现,为url创建一个单独的url模式而不使用命名组更为清晰
url(r'^list_cv/$', my_view),
url(r'^list_cv/(?P<category>[\d]+)/$', my_view),
url(r'^list\u cv/$,我的视图),
url(r'^list\u cv/(?P[\d]+)/$,我的视图),
对我来说是这样的:
r'^list_cv/(?:(?P<category>[\w+])/)?$'
r'^list\u cv/(?:(?P[\w+])/)?$'
编辑:
相比之下,不同之处在于重复匹配
(?:(?p[\w+])/)?$
与原始版本相比(?:(?p[\w+])?/)$(?:(?p[\w+])可能的重复版本并没有真正起作用,但第三个答案是使用这个r'^list\u cv/(?:(?p[\w+])?$谢谢,Mohammad Tayser!