我有一个名为Tag的模型,我的数据库中有很多这样的模型。 我想通过以下方式通过URL在页面中访问它们:
如果我想看到ID为1,3和4的标签,那么网址应该以134结尾。 我应该使用什么样的正则表达式模式,以便从像/.../ 134 /?这样的URL中获取列表[1,3,4]?
提前致谢
答案 0 :(得分:0)
如果同时使用正则表达式可能很难/不可能A.)URL中连续数字的数量是任意的,并且B.)您需要将每个数字单独返回到您的代码。
如果您只需要获取数字串(然后在代码中解析它),您可以使用:
/(\d+)/
(如果它们被用作分隔符,则转义/)
然后你可以在$ 1上运行一些字符串操作
如果你需要正则表达式将每个数字返回为1美元,2美元,3美元等,我相信唯一的解决方案将是相当不优雅的,如下所示:
/(\d)(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?/
...在这种情况下,它将支持URL中最多10个标签。
答案 1 :(得分:0)
您需要固定宽度的标签标识符(例如001003004),否则它是不明确的。如果你使用它,你可以捕获\d+
,然后在视图中执行类似的操作:
>>> import re
>>> tag_string = "001003004"
>>> regex = re.compile("\d{3}")
>>> tag_list = map(int, regex.findall(tag_string))
[1, 3, 4]