使用regex部分解析Python中的URL

2024-10-01 19:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用regex操作解析出URL的一部分。这可能是个老问题。但我对regex还是个新手,为了我的需求搜索了很多东西,却没有找到。我知道ParseURL可以在这里使用。但我的网址结构不合适。假设我的网址如下所示

url = https://www.sitename.com/&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed

在这里,我想知道&q=何时发生,并解析到下一个发生。我想删除+或任何特殊字符在中间。输出应该是

^{pr2}$

另外,如果没有匹配项,则应返回原始URL。在

我试过以下方法

re.search('q=?([^&]+)&',url).group(0)

这就回来了

&q=To+Be+Parsed+out&oq=Dont+Need+to+be+parsed

有谁能帮我分析一下吗。谢谢


Tags: tourlbeneedoutparsedregex网址
1条回答
网友
1楼 · 发布于 2024-10-01 19:29:59

您可以使用re.search()获得所需的子字符串,然后将所有+替换为str.replace()的空格:

re.search(r'/&q=([^&]*)', url).group(1).replace('+', ' ')
  • re.search(r'/&q=([^&]*)', url).group(1)得到所需的部分,replace('+', ' ')执行重排

示例:

^{pr2}$

如果没有匹配项,则捕获由re.search.group()引发的AttributeError异常,例如:

try:
    out = re.search(r'/&q=([^&]*)', url).group(1).replace('+', ' ')
except AttributeError:
    ## No match, do what you want

相关问题 更多 >

    热门问题