You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

正则表达式技术咨询:从单行网页爬取文本中提取链接

提取单行文本中href链接的解决方案

没问题,针对你这种从单行爬取文本里提取href链接的需求,我给你两种实用方案,不管你用Python脚本还是命令行工具都能轻松搞定。

方案1:用Python脚本处理(跨平台通用)

这种方法适合需要灵活调整逻辑,或者在Windows环境下没有grep工具的情况,步骤很清晰:

  1. 读取源文件的单行内容
  2. 用正则匹配所有符合href="链接内容"格式的链接
  3. 将提取到的链接逐行写入新文件

下面是完整的Python代码:

import re

# 替换成你的源文件路径
input_file_path = "your_input_file.txt"
# 替换成你要保存结果的文件路径
output_file_path = "extracted_links.txt"

# 读取单行内容(因为你的文件是单行无多余空格)
with open(input_file_path, "r", encoding="utf-8") as f:
    content = f.read()

# 正则匹配:捕获href="和"之间的所有内容
pattern = r'href="([^"]+)"'
links = re.findall(pattern, content)

# 将链接逐行写入输出文件
with open(output_file_path, "w", encoding="utf-8") as f:
    for link in links:
        f.write(link + "\n")

正则说明:

  • href=":精准匹配文本里的href="前缀(也就是网页里转义后的href="
  • ([^"]+):捕获组,匹配任意不是"的字符,直到遇到下一个",这部分就是我们要的链接内容
  • ":匹配结尾的转义双引号,确保只提取到完整的链接

方案2:用命令行grep快速处理(适合Linux/macOS/WSL)

如果你习惯用命令行,这是最快的方式,一行命令就能搞定:

grep -oP 'href="\K[^"]+' your_input_file.txt > extracted_links.txt

参数与正则说明:

  • -o:只输出匹配到的部分,而不是整行内容
  • -P:启用Perl兼容的正则表达式,支持\K语法
  • href="\K\K的作用是忽略前面匹配到的href=",直接从后面开始输出匹配内容
  • [^"]+:和Python方案里的逻辑一样,匹配到下一个"为止的所有字符,也就是链接内容

额外说明

如果你的文本里存在用单引号包裹的href(比如href='链接内容'),只需要把正则里的"替换成'即可:

  • Python正则改成:r"href='([^']+)'"
  • grep命令改成:grep -oP 'href='\''\K[^'\'']+' your_input_file.txt > extracted_links.txt

内容的提问来源于stack exchange,提问作者Zdeněk Nováček

火山引擎 最新活动