关于URL正则表达式匹配

大家好, 我在命令行,用如下命令,正则表达式匹配成功:

m=re.match(r'api/blogs/\?idstart=\d+',"api/blogs/?idstart=12");
m
<_sre.SRE_Match object at 0x024A3E20>
但是在url文件中,写成这样:

url(r'^api/blogs/\?idstart=\d+',blogs),
再通过地址http://127.0.0.1:8000/api/blogs/?idstart=12 去访问,提示匹配不成功。

请大家指导。谢谢。

^是作为开始的标志,加上^意味着在它前面不能有字符,否则匹配不成功

你中间那个^是不是多余的,弄错了?

^多了吧 , 还有你的的html数据有没有进行编码处理

http://127.0.0.1:8000/api/blogs/?idstart=12

url中?后面代表的是url的参数,此参数可通过request.GET来获取。

所以,我要说的是,你要匹配这个地址,不能连带着参数一起匹配,而是只需要匹配 http://127.0.0.1:8000/api/blogs/ 即可。

http://127.0.0.1:8000/api/blogs/?idstart=12

url中?后面代表的是url的参数,此参数可通过request.GET来获取。

所以,我要说的是,你要匹配这个地址,不能连带着参数一起匹配,而是只需要匹配 http://127.0.0.1:8000/api/blogs/ 即可。