这是urls.py中的正则表达式
url(r'^company_data/(?:[A-Za-z]+)/((?:0?[1-9]|[12][0-9]|3[01])(?:0?[1-9]|1[012])(?:20)?[0-9]{2})*/((?:0?[1-9]|[12][0-9]|3[01])(?:0?[1-9]|1[012])(?:20)?[0-9]{2})*$', 'stats.views.second', name='home'),
my views.py
def second(request,comp_name,offset_min,offset_max=None):
我从浏览器/company_data/hello/24092014/25092014
期待以下方式
comp_name= "hello", offset_min="24092014",offset_max="25092014"
实际上它是
comp_name="24092014",offset_max="25092014"
我在这做错了什么? 提前致谢!! 在这里输入代码
答案 0 :(得分:0)
您错过了捕获组1.
编辑:另请注意,第2组和第3组应如下所示,除非我在读你 错了,你打算检索特定号码组的最后一部分。
# '^/?company_data/([A-Za-z]+)/((?:(?:0?[1-9]|[12][0-9]|3[01])(?:0?[1-9]|1[012])(?:20)?[0-9]{2})*)/((?:(?:0?[1-9]|[12][0-9]|3[01])(?:0?[1-9]|1[012])(?:20)?[0-9]{2})*)$'
^
/? company_data /
( [A-Za-z]+ ) # (1)
/
( # (2 start)
(?:
(?: 0? [1-9] | [12] [0-9] | 3 [01] )
(?: 0? [1-9] | 1 [012] )
(?: 20 )?
[0-9]{2}
)*
) # (2 end)
/
( # (3 start)
(?:
(?: 0? [1-9] | [12] [0-9] | 3 [01] )
(?: 0? [1-9] | 1 [012] )
(?: 20 )?
[0-9]{2}
)*
) # (3 end)
$
输出:
** Grp 0 - ( pos 0 , len 37 )
/company_data/hello/24092014/25092014
** Grp 1 - ( pos 14 , len 5 )
hello
** Grp 2 - ( pos 20 , len 8 )
24092014
** Grp 3 - ( pos 29 , len 8 )
25092014