2011-03-08 54 views
1

GetUsage/2011年8月3日未能解释日期的正则表达式

匹配此URL我已经使用以下在urls.py(蟒& django的)

('^GetData/((0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)?[0-9]{2})*',GetData) 

和意见内的正则表达式的.py以下的方法被配置成接受的日期

def GetDataData(request,sdate): 

但是当我火以下请求

HTTP:// [IPADDRESS]/GetUsage/2011年8月3日

我得到以下错误

GetData() takes exactly 2 arguments (5 given) 

,因为它是在一个单独的5份计数2011年8月3日,但我想要得到它在一个单一的参数,即在sdate

回答

2

()内的每个正则表达式组作为参数传递给GetData()。如果您不想让某些组生成组,但仍希望使用parens,请使用(?:whatever)作为非分组parens。

编辑:你可能想是这样的:

('^GetData/((?:0?[1-9]|[12][0-9]|3[01])[- /.](?:0?[1-9]|1[012])[- /.](?:19|20)?[0-9]{2})*',GetData) 
+0

请你告诉我在什么URL改变? – Hunt 2011-03-08 16:58:10

+0

@Hunt:看我的编辑。 – geoffspear 2011-03-08 17:02:21