2011-03-08 50 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