为什么我的django url正则表达式无效

时间:2017-04-18 10:50:07

标签: regex django

我希望我的网址接受0位或更多位数(正整数或负整数),我的意思是它应匹配'/','0',...,'/ 9'以及'/ -9' ,'/ - 88'等。

这是我正在使用的正则表达式^([-]?[0-9]*)/$。它适用于除“/”之外的所有URL,这个正则表达式有什么问题?

修改

这是项目目录中urls.py中的urlpatterns:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'',include('basecalendar.urls'), name='date'),
]

这是basecalendar的urlpattern

urlpatterns=[
    url(r'^([-]?[0-9]*)/$',views.get_date),
]

1 个答案:

答案 0 :(得分:1)

由于您正在使用网址,因此您可能需要确保使用“/”结束网址。此外,这是因为你的网址最终期望'/'的原因。因此,网址something/与您的正则表达式不匹配,而是something//。所有这些观察都是根据你的正则表达式做出的。通常为了处理这种情况,你应该在你之前的正则表达式之上再添加一个url,例如:

url(r'^something/$', view),
url(r'^something/([-]?[0-9]*)/$', view),