1

我目前有表单的/blueURL - 每个 URL 都是一种颜色。关联的 URL 模式如下:

 (r'^(?P<colour>\w+)$', 'views.colour')

我想知道是否有可能有看起来像自然语言列表的 URL,长度不确定,用以下分隔-or-

/blue-or-green-or-yellow

理想情况下,关联的 URL 模式会将每个匹配项附加到 Python 列表中,以便在视图中处理:

 (r'^(?P<colour_list>\w+)(?:-or-(?P<colour_list>\w+))+$', 'views.colour')

有没有办法在 Django 中做到这一点?

4

3 回答 3

4

像这样的东西(?P<colour_list>(\w+(\-or\-)?)+)会得到整个子字符串匹配,然后你可以分割-or-

但是请注意,那blue-or-将是有效匹配,因此您可能希望像这样拆分它:filter(bool, colour_list.split('-or-'))

于 2013-01-05T13:08:58.090 回答
0

这样的事情会有所帮助:

采用逗号分隔的颜色

(r'^(?P<colours>[\w,]+)$', 'views.colour')

然后在视图中:

colours = colours.split(',')
于 2013-01-05T13:29:30.677 回答
0

试试这个regex

(\w+(?:-or-)?)+

或使用字符串拆分:

result = colours.split("-or-")
于 2013-01-05T13:32:51.167 回答