Plu*_*oTX 11 python regex django
我正在使用Django的URLconf,我将收到的URL是/?code=authenticationcode
我想匹配使用的URL r'^\?code=(?P<code>.*)$',但它不起作用.
然后我发现它是'?'的问题.
因为我尝试/aaa?aaa使用r'aaa\?aaa' r'aaa\\?aaa'偶数匹配r'aaa.*aaa',都失败了,但是当它是"+"或任何其他角色时它会起作用.
如何匹配'?',这是特别的吗?
Anu*_*pta 14
>>> s="aaa?aaa"
>>> import re
>>> re.findall(r'aaa\?aaa', s)
['aaa?aaa']
Run Code Online (Sandbox Code Playgroud)
原因/aaa?aaa在您的URL内部不匹配是因为a ?开始新的GET查询.
因此,URL的匹配部分仅限于第一个'aaa'.剩下的'?aaa'是一个由'?'分隔的新查询字符串 mark,包含作为GET参数传递的变量"aaa".
你可以做的是在变量进入URL之前对变量进行编码.编码形式?是%3F.
您也应该不匹配GET查询,例如/?code=authenticationcode使用正则表达式.相反,请将您的网址与/使用相匹配r'^$'.Django会将变量code作为GET参数传递给request对象,您可以在视图中使用它获取request.GET.get('code').
| 归档时间: |
|
| 查看次数: |
11241 次 |
| 最近记录: |