未能解释日期正则表达式

时间:2011-03-08 16:44:02

标签: python regex django

GetUsage / 2011年8月3日

匹配此网址我在urls.py(python& django)中使用了以下正则表达式

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

并在views.py下面的方法中配置为接受日期

def GetDataData(request,sdate):

但是当我按照要求开火时

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

我收到以下错误

GetData() takes exactly 2 arguments (5 given)

因为它是在单独的5个部分计算08-03-2011,但我想在单个参数中获取它,即在sdate中

1 个答案:

答案 0 :(得分: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)