有一个正则表达式可以从 html 文本中提取所有 URL:
r'''http[\:/a-zа-яA-ZА-Я0-9\.\?\=&-]*'''
但它也提取以下值:
https:
http-equiv=
http
http:
https
https?://
如何修复正则表达式,使这样的值不落入最终列表?
它也不适用于没有协议名称的链接,即 链接,www.ria.ru/infografika/否则ria.ru/infografika/找不到。
有一个正则表达式可以从 html 文本中提取所有 URL:
r'''http[\:/a-zа-яA-ZА-Я0-9\.\?\=&-]*'''
但它也提取以下值:
https:
http-equiv=
http
http:
https
https?://
如何修复正则表达式,使这样的值不落入最终列表?
它也不适用于没有协议名称的链接,即 链接,www.ria.ru/infografika/否则ria.ru/infografika/找不到。
您需要从相应的答案中获取正则表达式(可以在此处看到其工作)并将捕获组更改为其中的不可捕获组,因为 python 在使用 findall 时会选择存在的组。
原来是这样的:https ://ideone.com/mMj9b3
程序:
输入:
结论:
对于以引号结尾的地址:https ://ideone.com/VF0As3
输入:
结论: