2013-08-29 37 views
2

我有一個Django的URL是這樣的:如何修改這個正則表達式來接受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/ 

但隨着'-'的網址不被接受:

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

我怎麼能修改此正則表達式以接受URL與'-'

+0

也許(+)URL(R '^(ΔP。+)/初學者/ $',views.beginner,名稱= '初學者') –

回答

1

\w符合字母,數字和_,而不是-

[-\w]更換\w

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

難道'URL(R'^(θP [ - \ w])/ beginner/$',views.beginner,name ='beginner')'但是我沒有找到http://127.0.0.1:8000/quiz/vocabulary/beginner /'的URL 。 – pynovice

+0

@ user2032220,保留'+'。 – falsetru

+0

謝謝隊友,我會盡我所能接受你的回答。 – pynovice

5

更好的是,以取代\w+[\w-]+現在它將匹配單詞和-

說:比賽的話\w- 1次或更多次

你Django url看起來像

url(r'^(?P<category_id>[\w-]+)/beginner/$', views.beginner, name='beginner') 
相關問題