Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-URL正则表达式模式_Python_Regex_Django - Fatal编程技术网

Python Django-URL正则表达式模式

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+/如果用作分隔符,则转义/ 然后

我有一个名为Tag的模型,我的数据库中有很多这样的模型。 我想通过以下方式通过URL在页面中访问它们:

如果我想看到id为1、3和4的标记,那么URL应该以134结尾。 为了从像/../134/这样的URL获取列表[1,3,4],我应该使用什么正则表达式模式


提前感谢

如果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]