首页 > 解决方案 > 让我的 re.findall 接受带有 # 符号的网址

问题描述

现在我在python中有这行代码:

 urls = re.findall("(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+",str(field))

这会搜索关键字是否在 url 中,但是它不会正确解析包含 # 的 url。我正在尝试解析的示例链接是

https://partalert.net/product.html?v=51421546#asin=B08KH7RL89&price=&smid=A3P5ROKL5A1OLE&tag=partalert-21×tamp=00%3A17+UTC+%281.3.2021%29&title=Gigabyte+GeForce+RTX+3080+VISION+ OC+10GB+显卡+显卡&tld=.co.uk

但是,解析排除了主题标签及其之后的所有内容:

https://partalert.net/product.html?v=51421546

标签: jsonpython-3.xparsingurl

解决方案


我设法解决了这个问题,我需要在字符类中添加一些符号,这是有效的正则表达式:“(?:(?:https?|ftp)://)?[\w/-?=%. #&+]+.[\w/-?=%.#&+]+"


推荐阅读