我正在尝试从R中的URLS中提取参数。参数的确切位置将发生变化,因此我需要以其他方式识别它。
以下是URL的示例:
https://www.example.se/-Hotell.d178317.Reseguide-Hotell-SMP?destinationId=178317&kword=ZzZz.4650002325454
我想在d
之后提取数字 - 在这个例子中178317
。
目前我正在使用这个功能qazxsw poi,我无法弄清楚如何继续。有人可以建议如何在这个例子中使用这个功能吗?干杯!
使用几个sub(".d","",url)
s:
sub
直到第一个> url
[1] "https://www.example.se/-Hotell.d178317.Reseguide-Hotell-SMP?destinationId=178317&kword=ZzZz.4650002325454"
的所有东西:
".d"
并用> sub(".*?\\.d","",url)
[1] "178317.Reseguide-Hotell-SMP?destinationId=178317&kword=ZzZz.4650002325454"
>
包装,从第一个非数字开始切割所有内容:
sub
使用> sub("[^0-9].*","",sub(".*?\\.d","",url))
[1] "178317"
来制作一个数字。
我想你真正想要的是在as.numeric
之后提取任何东西,所以你可能会相处:
destinationId
哪个收益率
urls <- c("https://www.example.se/-Hotell.d178317.Reseguide-Hotell-SMP?destinationId=178317&kword=ZzZz.4650002325454")
gsub(".*?destinationId=(\\d+).*", "\\1", urls)
使用正则表达式比@Spacedman使用的更复杂一点,结合他的两个部分加上匹配,你可以将它限制为一个sub()调用:
[1] "178317"
正则表达式的作用:
“\\ 1”匹配括号中正则表达式中的位,现在用作sub的替换,因此作为输出给出。