Python Django-URL正则表达式模式
我有一个名为Tag的模型,我的数据库中有很多这样的模型。 我想通过以下方式通过URL在页面中访问它们: 如果我想看到id为1、3和4的标记,那么URL应该以134结尾。 为了从像/../134/这样的URL获取列表[1,3,4],我应该使用什么正则表达式模式Python Django-URL正则表达式模式,python,regex,django,Python,Regex,Django,我有一个名为Tag的模型,我的数据库中有很多这样的模型。 我想通过以下方式通过URL在页面中访问它们: 如果我想看到id为1、3和4的标记,那么URL应该以134结尾。 为了从像/../134/这样的URL获取列表[1,3,4],我应该使用什么正则表达式模式 提前感谢如果a.URL中的连续数字是任意的,B.您需要将每个数字分别返回到代码中,那么仅使用正则表达式可能会很困难/不可能 如果您只需要抓取数字字符串,然后在以后的代码中解析它,您可以使用以下方法: /\d+/如果用作分隔符,则转义/ 然后
提前感谢如果a.URL中的连续数字是任意的,B.您需要将每个数字分别返回到代码中,那么仅使用正则表达式可能会很困难/不可能 如果您只需要抓取数字字符串,然后在以后的代码中解析它,您可以使用以下方法: /\d+/如果用作分隔符,则转义/ 然后你可以在$1上运行一些字符串操作 如果您需要正则表达式将每个数字返回为$1、$2、$3等,我相信唯一的解决方案是一些相当不雅观的东西,如:
/(\d)(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?/
…在这种情况下,它最多支持URL中的10个标记。您需要固定宽度的标记标识符,例如001003004,否则它是不明确的。如果使用该选项,您只需捕获\d+,然后在视图中执行以下操作:
>>> import re
>>> tag_string = "001003004"
>>> regex = re.compile("\d{3}")
>>> tag_list = map(int, regex.findall(tag_string))
[1, 3, 4]