从 URL 中提取参数

问题描述 投票:0回答:1

我首先要说的是,我不知道如何使用 gsub,而且我无法理解 chatgpt 下面给我的代码,该代码可以工作,但它提取了错误的 url 参数。

示例网址:“https://www.somewebsite.com/bmw/430i/2018/855648”

extract_info <- function(url) { car <- gsub(".*/([^/]+)/([^/]+)/.*", "\\1", sub("^https?://[^/]+/", "", url)) make <- gsub(".*/([^/]+)/([^/]+)/.*", "\\1", sub("^https?://[^/]+/", "", url)) model <- gsub(".*/([^/]+)/([^/]+)/([^/]+)/.*", "\\2", sub("^https?://[^/]+/", "", url)) return(list(car = car, model = model, year = year)) }

代码返回汽车,型号为 430i,年份为“bmw/430i/2018/8855648”。

我尝试使用qdapRegex,但也未能相应地调整它。请帮助我了解正则表达式正在捕获 url 的哪些部分以及如何相应地调整代码。

我期待获得汽车、型号和年份

r data-science visualization
1个回答
0
投票

如果 URL 始终采用相同类型的格式,您可以使用

strsplit
:

x <- "https://www.somewebsite.com/bmw/430i/2018/855648"
strsplit(x, "\\/")[[1]][4:6]
[1] "bmw"  "430i" "2018"
© www.soinside.com 2019 - 2024. All rights reserved.