如何使用正则表达式提取URL中code=后的文本
正则提取URL中code参数值的正确写法
你的现有正则表达式存在两个问题:一是多余的/(...)$/包裹导致匹配失败,二是没有设置捕获组来提取目标内容。以下是两种可行的解决方法:
方法一:使用正则捕获组
import re redirect_url = "https://appf.io/oauth_callback?code=rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak" match_result = re.search(r'code=([^&]+)', redirect_url) if match_result: print(match_result.group(1)) # 输出目标字符串
- 正则
code=([^&]+)的逻辑:匹配code=开头的片段,用([^&]+)捕获所有非&字符(避免后续有其他URL参数时匹配范围超出),直到遇到URL参数分隔符&或字符串结尾。
方法二:用字符串分割更简便
如果URL结构固定,也可以不用正则,直接用字符串分割实现:
redirect_url = "https://appf.io/oauth_callback?code=rRRtydLv-70OBNniMSHbOiZv-AqryJrX50hht_6HBak" code_value = redirect_url.split('code=')[1].split('&')[0] print(code_value)
- 先按
code=分割字符串,取第二部分;再按&分割,取第一部分,即可得到code参数的对应值。
内容的提问来源于stack exchange,提问作者Ben David
相关产品推荐
相关产品推荐

