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

R语言使用stringr包提取URL指定片段遇到困难,寻求解决方法

解决R语言中提取亚马逊商品URL的问题

嘿,我来帮你搞定这个URL提取的小问题!你遇到的情况是URL里包含了HTML转义的&(也就是实际的&符号),我们只需要提取到第一个&之前的部分就行,用stringr包有几种简单的实现方式:

方法1:使用str_extract和正则匹配

我们可以用正则表达式匹配从字符串开头到第一个&之前的所有内容:

library(stringr)

# 你的原始URL向量
links <- "https://www.amazon.in/Glass-Milk-Bottle-Clear-Pieces/dp/B01J9SKYYU&amp;sa=U&amp;ved=0ahUKEwiGkd_x8P3ZAhUOSY8KHZUVBg0QFggmMAA&amp;usg=AOvVaw1wAFHoDLiP94xbl9JJsp8E"

# 提取目标部分
extracted_link <- str_extract(links, "^.*?(?=&amp;)")

# 查看结果
print(extracted_link)

这里的正则^.*?(?=&amp;)表示:

  • ^:从字符串开头开始匹配
  • .*?:非贪婪匹配任意字符(直到遇到后面的条件)
  • (?=&amp;):正向预查,匹配到&amp;之前的位置就停止

方法2:更简洁的正则匹配

因为&amp;本质是转义的&,我们也可以直接匹配所有不是&的起始字符,代码更简短:

extracted_link <- str_extract(links, "^[^&]+")

[^&]+表示匹配所有不是&的字符,直到第一个&出现就停止,完美命中我们需要的部分。

方法3:使用字符串分割

如果你觉得正则有点绕,用str_split分割字符串也是个好办法:

# 按&amp;分割字符串,取第一个元素
extracted_link <- str_split(links, "&amp;")[[1]][1]

这个逻辑很直观:把原始URL按&amp;切成多个部分,然后取第一部分就是我们要的商品链接。

运行上面任意一种方法,你都会得到想要的结果:https://www.amazon.in/Glass-Milk-Bottle-Clear-Pieces/dp/B01J9SKYYU

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:46:33