python - Django 上的正则表达式不起作用

标签 python regex django

我对 Django 比较陌生,所以我正在做 this tutorial ,但是我遇到了正则表达式的问题:

对于此 View

def viewArticle(request, month, year):
     text = "Displaying articles of : %s/%s"%(year, month)
     return HttpResponse(text)

我应该创建一个像这样的网址

url(r'^articles/(\d{2})/(\d{4})', 'viewArticles', name='articles')

它工作得很好,例如当我输入 http://.../articles/12/2014 时我得到“正在显示文章:2014 年 12 月”,正如我应该的那样。

但是,稍后(在 PDF 的第 27 页上)建议我将 url 更改为:

url(r'^articles/(?P\d{2})/(?P\d{4})', 'viewArticles', name='articles'),

现在它不再起作用了。为什么会这样?我该如何更改我的代码?感谢您的任何建议!

最佳答案

教程说您可以使用 named capturing groups这里:

(?P<name>...)
Similar to regular parentheses, but the substring matched by the group is accessible via the symbolic group name name. Group names must be valid Python identifiers, and each group name must be defined only once within a regular expression. A symbolic group is also a numbered group, just as if the group were not named.

命名捕获组的正确声明是 (?P<name>...) :

url(r'^articles/(?P<month>\d{2})/(?P<year>\d{4})', 'viewArticles', name='articles')

关于python - Django 上的正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757159/

相关文章:

regex - 使用 Sed 获取开始字符和结束字符之间的所有字符

java - 如何转义java中的某些字符

python - Django 测试 unittest.loader.ModuleImportFailure

python - 全局名称 'reverse' 未定义

python - 从多个文件中搜索和排序数据

python - 如何从返回字符数的字符串创建字典

python - 在方法中运行时,内置 type() 函数的行为有所不同

regex - 为什么这个 grep 命令没有返回任何东西? ( bash )

用于存储用户日常事件的 SQL 表结构

python - 如何修复对象图像无法正确加载的问题