我希望能够处理以下URL:
http://mywe/en/my-home/travels/search-results/age-min/18/
http://mywe/en/my-home/travels/search-results/age-min/18/age-max/50/
http://mywe/en/my-home/travels/search-results/town/acapulco依此类推,所以它总是遵循这样的模式
'([whatever until a slash]+/[whatever until a slash]+)+/$'这意味着在regexp中:
'([^/]+/[^/]+)+/$'在Django,我正在尝试这样做:
'^my-home/travels/search-results/(?P<slug>[a-zA-Z0-9-_]*)/$'这个网址工作得很好:
http://mywe/en/my-home/travels/search-results/testtesttest/当我将[a-zA-Z0-9-_]替换为[.] (应该是“任意字符”)时,它不起作用。我想知道
'([^/]+/[^/]+)+/$'的regexp "Django方式“是什么?谢谢!
发布于 2016-01-28 15:56:38
对于第一个问题,'[.]'不工作,因为它并不意味着任何字符,它意味着点。对于任何字符,您都应该在[]之外使用点。
对于第二个问题:您可以用类似的方式定义URL,但是不能捕获重复组的所有匹配,它只能捕获最后一个。这就是正则表达式的局限性。
但我有两种可能的解决方案:
.*)中end模式的末尾,并在您的视图中解析它以提取所有可能的值。https://stackoverflow.com/questions/35065540
复制相似问题