Python:无法理解正则表达式

标签 python regex django

我正在阅读 django 教程,虽然现在几乎所有内容看起来都很清楚,但在匹配 url 时我无法理解正则表达式:

r'^(?P<poll_id>\d+)/$

什么是(?P<poll_id>\d+)做 ?

我的理解是在剥离 "34/" 之后来自 "polls/34/" , polls.url正在调用,关键字 urlpatterns正在寻找,但如何poll_id得到这个值 34

我只知道一点正则表达式,所以这就是我可能难以阅读的原因。 此外,这是我用于此问题的引用:Tutorial Part3

最佳答案

这是一个将 poll_id(一个数字)作为变量的正则表达式。

对应的view是:

def detail(request, poll_id):
    return HttpResponse("You're looking at poll %s." % poll_id)

现在,当您转到 example.com/polls/34/ 时,它知道您正在寻找 poll 号码 34,并且它将其作为 poll_id 引入 View 。

所以在您看来,poll_id = 34。这使您可以显示或操作此特定民意调查。

本质上,在这种情况下,正则表达式的要点是允许您查看大量特定的民意调查,而不必为每个民意调查创建一个明确的 url。

澄清一下,这个正则表达式是说取任何数字 \d+,将其保存为 poll_id,然后使用那个 poll_id 继续这个 View .

关于Python:无法理解正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638593/

相关文章:

python - 如何在百分比类型的单元格中放置两位小数

python - 获取一个 python 实例的总内存和 cpu 使用率

Python:尝试交叉应用两个数据框

python - Django 主题/皮肤存储库

python - 如何在过滤器中使用 "or"

regex - 匹配有效日期的正则表达式

php - 获取第一个和最后一个特殊字符之间的字符串

java - 正则表达式替换 json 字符串

django - 如果我的 Django 应用程序使用基于缓存的 session 后端,删除 `django_session` 表是否安全?

python - Nosetests 和 Coverage 不排除线路