2

在 django book 和 django website 中,\d+用于从 url 捕获数据。语法永远不会解释,D 或 () 的重要性也不会超出您可以指定 url 的该部分中的字符数这一事实。这些变量是如何、准确地/以什么顺序传递给函数的?锄头,确切地说,语法有效吗?你如何实施它?别忘了解释()

4

3 回答 3

6

那是一个正则表达式\d意思是数字,+意思是“一个或多个”。将它放在括号中指定它是一个捕获组。每个捕获组的内容按照它们在正则表达式中出现的顺序传递给处理函数。

Python 的正则表达式库是re.

作为另一个例子,一个更复杂的正则表达式可能(\d+)/(\d+)会捕获由斜线分隔的两组不同的一个或多个数字,并将它们作为两个参数传递(第一个数字字符串作为第一个参数,第二个数字字符串作为第二个参数)参数)到处理函数。

于 2012-08-08T03:35:03.560 回答
6

如果没有更多信息,我猜它是一个正则表达式(或简称“正则表达式”)。这些是许多编程语言中使用的常见字符串处理机制。在 Python 中,它们re模块处理。如果您想了解更多关于它们的信息,您可能需要查看一般的正则表达式教程,例如http://www.regular-expressions.info/

于 2012-08-08T03:35:19.053 回答
1

它指的是用于从 URI 中捕获数字 ID 的数字正则表达式。

Hi-REST 约定要求 GET/POST/... 的 URI 由资源的 ID 终止,在这种情况下,它正在寻找数字 ID -\d+是一个或多个数字)

将它括在括号中只是帮助 Django 解析正则表达式的约定。

例子:

http://www.amazon.com/dp/0486653552

于 2012-08-08T03:35:33.927 回答