在R中的两个字符串模式之间提取字符串

时间:2014-07-14 21:47:38

标签: r grep

如果我有一个角色矢量:

 links <- c("http://fdsfdsfdsfsdaaa.com/t5/this/bd-p/fdsfsdfdsfscshdad/dasd",
            "http://ffdsfdddddfdf.com/t5/that/bd-p/fdsfdsfsddfjfsd")

我想提取&#34;这个&#34;和#34;那&#34;知道他们介于&#34; t5&#34;和&#34; bd-p。&#34;完全失去了这个。

2 个答案:

答案 0 :(得分:3)

使用sub

sub(".*t5/(.*)/bd-p.*","\\1",links)
[1] "this" "that"

答案 1 :(得分:1)

试试这个:

lapply(regmatches(links, regexec("t5/(.*)/bd-p", links)), '[', 2)
[[1]]
[1] "this"

[[2]]
[1] "that"

regexecregmatches相结合有助于获得子表达式(即括号中的内容)。 regmatches将返回整个搜索字符串和子表达式,这就是为什么我只提取第二个元素,即子表达式。