我在配置以下网址时遇到了一些问题。我希望它能够匹配以类别开头然后以 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/