gpt4 book ai didi

带有问号文字的 Python 正则表达式

转载 作者:太空狗 更新时间:2023-10-29 18:00:26 26 4
gpt4 key购买 nike

我正在使用 Django 的 URLconf,我将收到的 URL 是 /?code=authenticationcode
我想使用 r'^\?code=(?P<code>.*)$' 匹配 URL ,但它不起作用。

然后我发现是'?'的问题。
因为我试图匹配 /aaa?aaa使用 r'aaa\?aaa' r'aaa\\?aaa'甚至 r'aaa.*aaa' ,都失败了,但是当它是“+”或任何其他字符时它会起作用。
'?'怎么搭配,有没有特别之处?

最佳答案

>>> s="aaa?aaa"
>>> import re
>>> re.findall(r'aaa\?aaa', s)
['aaa?aaa']

/aaa?aaa 在您的 URL 中不匹配的原因是因为 ? 开始了一个新的 GET 查询。

因此,URL 的可匹配部分只到第一个'aaa'。剩余的“?aaa”是一个新的查询字符串,由“?”分隔标记,包含作为 GET 参数传递的变量“aaa”。

可以在这里做的是在变量进入 URL 之前对其进行编码。 ?的编码形式是%3F


您也不应该使用正则表达式来匹配 GET 查询,例如 /?code=authenticationcode。相反,使用 r'^$' 将您的 URL 匹配到 /。 Django 会将变量 code 作为 GET 参数传递给 request 对象,您可以在 View 中使用 request.GET.get('code') 获取该对象

关于带有问号文字的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com