regex 如何使用reg提取word后的文本

uklbhaso  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(154)

我想使用正则表达式提取单词code=之后的文本

import re
redirect_url = "https://appf.io/oauth_callback?code=rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak"
print(re.search(r'/(oauth_callback\?code=.+)$/', str(redirect_url)))

溶液:rRRtydLv-70 OBNniMSHbOiZv-AqryJrX 50 hht_6 HBak

gab6jxml

gab6jxml1#

如果我理解你的问题,你想提取特定字符串后的文本。您可以使用字符串操作。要做到这一点,下面的例子看起来像

redirect_url = "https://appf.io/oauth_callback?code=rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak"
print(redirect_url.split("oauth_callback?code=")[1])

我删除了反斜杠,因为我们不需要转义特殊字符

xxhby3vn

xxhby3vn2#

如果你想使用re,你可以尝试(regex101):

import re

redirect_url = "https://appf.io/oauth_callback?code=rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak"

code = re.search(r'^(?=.*/oauth_callback).*\bcode=([^?&]+)', redirect_url)
if code:
    print(code.group(1))

图纸:

rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak

在正则表达式的开头,我们检查是否有/oauth_callback部分:

^(?=.*/oauth_callback)

如果是,则选择code=之后的所有字符:

.*\bcode=([^?&]+)

相关问题