在R中提取URL参数和值

时间:2016-01-15 12:56:06

标签: regex r gsub

我们希望从给定的网址中提取参数和值,例如

http://www.exemple.com/?a=1&b=2&c=3#def

使用xml2 :: url_parse,我们可以将url解析为其组件。但是,我们仍然希望使用gsub匹配正则表达式将查询分配到元素中:

([^?&=#]+)=([^&#]*)  

期望的输出

a=1
b=2
c=3

2 个答案:

答案 0 :(得分:3)

我们可以尝试

library(stringr)
matrix(str_extract_all(str1, "[a-z](?=\\=)|(?<=\\=)\\d+")[[1]], ncol=2, byrow=TRUE)

或者如果我们还需要=

 str_extract_all(str1, "[a-z]=\\d+")[[1]]
 #[1] "a=1" "b=2" "c=3"

数据

str1 <- "http://www.exemple.com/?a=1&b=2&c=3#def"

答案 1 :(得分:2)

使用urltools包来解析网址。

> u <- "http://www.exemple.com/?a=1&b=2&c=3#def"
> strsplit(urltools::parameters(u), "&")[[1L]]
[1] "a=1" "b=2" "c=3"