Python 重复组的django URL模式?

Python 重复组的django URL模式?,python,regex,django,django-urls,Python,Regex,Django,Django Urls,我试图在django(1.5)中进行一些类别/子类别路由。 我有5个级别的分类,看起来像 url(r'^(?P<category>\w*)/$', SearchResults.as_view(), name='search_results'), url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/$', SearchResults.as_view(), name='search_results'), url(r'^(?P&l

我试图在django(1.5)中进行一些类别/子类别路由。 我有5个级别的分类,看起来像

url(r'^(?P<category>\w*)/$', SearchResults.as_view(), name='search_results'),
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/$', SearchResults.as_view(), name='search_results'),
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/$', SearchResults.as_view(), name='search_results'),
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/(?P<sublevel3>\w*)/$', SearchResults.as_view(), name='search_results'),
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/(?P<sublevel3>\w*)/(?P<sublevel4>\w*)/$', SearchResults.as_view(), name='search_results'),
url(r'^(?P\w*)/$,SearchResults.as_view(),name='search_results'),
url(r'^(?P\w*)/(?P\w*)/$),SearchResults.as_view(),name='search_results'),
url(r'^(?P\w*)/(?P\w*)/(?P\w*)/$),SearchResults.as_view(),name='search_results'),
url(r'^(?P\w*)/(?P\w*)/(?P\w*)/(?P\w*)/(?P\w*)/$),SearchResults.as_view(),name='search_results'),
url(r'^(?P\w*)/(?P\w*)/(?P\w*)/(?P\w*)/(?P\w*)/)/(?P\w*)/$”,SearchResults.as_view(),name='search_results'),
但我想知道是否有更好的方法? 带有重复模式或类似模式的正则表达式的东西


谢谢。

对于正则表达式模式,组的数量“在编译时固定”。您需要创建一个与模式的n个重复匹配的组,然后在捕获后将其拆分

您需要使用类似于
^(?p(?[\w]+\/?)+)$

那么在你看来,

categories = filter(bool, categories.split('/'))

如果你还想保留命名组,我不这么认为。即使是数字也不会保留。我相信用
/
进行拆分会更容易。