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

如何从HTML页面中提取固定前缀的指定链接?

提取HTML中固定前缀的目标链接

给定HTML片段:

<td><a href="test-2025-03-24_17-05.log">test-2025-03-24_17-05.log</a></td>
<td><a href="PASS_report_test_2025-03-24_17h07m10.html">PASS_report_test_2025-03-24_17h07m10.html</a></td>
<td><a href="TESTS-test_01.xml">TESTS-test_01.xml</a></td>
<td><a href="TESTS-test_02.xml">TESTS-test_02.xml</a></td>

需要提取前缀为PASS_report_的链接,以下是几种可行方案:

方案1:使用grep(支持PCRE)

直接匹配带目标前缀的链接,利用正向预查精准提取:

grep -oP '(?<=href=&quot;)PASS_report_[^&quot;]*' your_html_file

解释:

  • -o:只输出匹配到的部分
  • -P:启用Perl兼容正则表达式
  • (?<=href=&quot;):正向预查,定位到href=&quot;之后的位置
  • PASS_report_[^&quot;]*:匹配以PASS_report_开头,直到下一个&quot;的所有内容

方案2:使用sed

调整原有sed命令,增加前缀过滤,只提取目标链接:

sed -n 's/.*href=&quot;\(PASS_report_[^&quot;]*\).*/\1/p' your_html_file

解释:

  • -n:默认不输出行内容
  • 正则中精准捕获以PASS_report_开头的链接部分,替换整行并输出匹配结果

关于原有命令无效的说明

你之前尝试的sed -n 's/.*href=&quot;\([^&quot;]*\).*/\1/p' file会提取所有链接,若变量为空,大概率是执行时的shell转义问题,或是你没有正确过滤出目标链接导致后续处理出错。上述两种方案通过增加PASS_report_前缀匹配,既能精准提取目标,也避免了无关链接的干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:55:01