You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex从指定HTML代码中提取链接URL

用正则从指定HTML中提取链接URL

嘿,针对你给出的这段HTML代码,我来一步步教你用正则提取里面的链接URL。不过先提前说一句:正则其实不是处理HTML的最优方案——如果后续HTML结构有变动(比如href属性前后多了其他属性、属性顺序改变),正则很容易失效。更靠谱的方式是用BeautifulSoup这类专门的HTML解析库,但如果只是针对这段固定结构的代码,正则完全能搞定。

步骤1:编写匹配正则

针对这段HTML,我们可以用这个正则表达式:

href="(https?://[^"]+)"

正则各部分解释:

  • href=":精准匹配链接标签里的href属性起始部分,确保我们定位到正确的位置
  • (https?://[^"]+):这是一个捕获组,专门用来提取我们需要的URL:
    • https?://:匹配http://或者https://,其中?表示前面的s是可选的
    • [^"]+:匹配除了双引号之外的所有字符,直到遇到下一个双引号(也就是href属性的结尾)
  • ":匹配href属性的闭合双引号,确保我们不会多捕获内容

步骤2:实际代码演示(以Python为例)

把正则用在代码里提取URL,示例如下:

import re

# 你的目标HTML代码
html_content = '''<tr class="ipl-zebra-list__item"> <td class="ipl-zebra-list__label">Official Sites</td> <td> <ul class="ipl-inline-list"> <li class="ipl-inline-list__item"> <a href="https://www.indiegogo.com/projects/super-troopers-2">IndieGoGo page</a> </li> <li class="ipl-inline-list__item"> <a href="https://www.facebook.com/SuperTroopersMovie/">Official site</a> </li> </ul> </td> </tr>'''

# 用正则提取所有匹配的URL
extracted_urls = re.findall(r'href="(https?://[^"]+)"', html_content)

# 打印结果
print(extracted_urls)

运行这段代码,你会得到结果:

['https://www.indiegogo.com/projects/super-troopers-2', 'https://www.facebook.com/SuperTroopersMovie/']

进阶:适配更多情况

如果HTML里的href属性可能用单引号(比如href='xxx'),可以把正则改成更通用的版本,同时支持单双引号:

href=["'](https?://[^"']+)["']

更稳健的替代方案

还是要再提醒下,如果是复杂的HTML文档,或者结构可能随时变化,优先用HTML解析库(比如BeautifulSoup),代码示例:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_content, 'html.parser')
# 提取所有<a>标签的href属性
url_list = [link.get('href') for link in soup.find_all('a')]
print(url_list)

这种方式不管属性顺序、额外属性怎么变,都能稳定提取到链接。

内容的提问来源于stack exchange,提问作者Adeeva Ameera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:01:56