python - Django URL 正则表达式 "is not a valid regular expression"错误

标签 python regex django

我在配置以下网址时遇到了一些问题。我希望它能够匹配以类别开头然后以 slug 结尾的页面,示例:

/category1/post1/
/category2/post2/
/category3/post3/
/category1/post4/
/category2/post5/

我尝试了许多不同的方法,但没有成功...我总是收到“不是有效的正则表达式”错误。 这就是我认为它应该如何工作:

url(r'^(?P<category1|category2|category3>[\w\-]+)/(?P<slug>[\w\-]+)/$', blog_post, name = 'blog_post'),

我对正则表达式相当陌生,并且正在尝试学习,因此任何有关此问题的帮助和解释将不胜感激:)

最佳答案

您的模式不正确;您将替代值放在了错误的位置。您将它们放入群组的名称中:

(?P<category1|category2|category3>...)

将它们放在名称应该匹配的部分:

(?P<category>category1|category2|category3)

进行完整注册:

url(r'^(?P<category>category1|category2|category3)/(?P<slug>[\w\-]+)/$', blog_post, name='blog_post'),

我假设您的 blog_post 可调用内容类似于:

def blog_post(category, slug):

关于python - Django URL 正则表达式 "is not a valid regular expression"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25625529/

相关文章:

python - 运行 django-admin

python - 我应该如何在 django admin 中表示一个 bit flags int 字段?

python - 有没有办法在VScode远程ssh(windows)中显示数字

python - 有什么方法可以让 "clear"成为一个表面吗?

C# 使用 RegEx 分解 DateTime

c# - 如何使用 Regex.Replace 替换两个点?

ios - stringByReplacingOccurrencesOfString 替换较长单词的组合

Python furl 库 - 有没有办法在没有 url 编码的情况下将参数添加到 url?

python - 为什么我的学位争论表现得很奇怪?

python - 忽略/跳过 python bandit 安全问题报告中的某些问题的方法是什么?