2

我有一个这样的 Django URL:

url(r'^(?P<category_id>\w+)/beginner/$', views.beginner, name='beginner')

此正则表达式接受如下 URL:

http://127.0.0.1:8000/quiz/grammar/beginner/
http://127.0.0.1:8000/quiz/vocabulary/beginner/

'-'但不接受带有的 URL :

# This URL is not accepted
http://127.0.0.1:8000/quiz/business-english/beginner/

如何修改此正则表达式以接受 URL'-'

4

2 回答 2

5

更好的是替换\w+[\w-]+Now 它会匹配单词和-

说:匹配单词\w-1次或多次

你的 Django 网址看起来像

url(r'^(?P<category_id>[\w-]+)/beginner/$', views.beginner, name='beginner')
于 2013-08-29T05:22:05.147 回答
1

\w匹配字母、数字和_,而不是-

替换\w[-\w]

url(r'^(?P<category_id>[-\w]+)/beginner/$', views.beginner, name='beginner')
于 2013-08-29T05:17:30.923 回答