我想提取'/'符号后的倒数第二个字符串。例如,
url<- c('https://example.com/names/ani/digitalcod-org','https://example.com/names/bmc/ambulancecod.org' )
df<- data.frame (url)
我想从两个//中的最后一个提取第二个单词,并想获得单词“ ani”和“ bmc”
所以,我尝试了
library(stringr)
df$name<- word(df$url,-2)
我需要如下输出:
name
ani
bmc
答案 0 :(得分:4)
您可以使用word
,但需要指定分隔符
library(stringr)
word(url, -2, sep = '/')
#[1] "ani" "bmc"
答案 1 :(得分:1)
尝试一下:
as.data.frame(sapply(str_extract_all(df$url,"\\w{2,}(?=\\/)"),"["))[3,]
# V1 V2
#3 ani bmc
as.data.frame(sapply(str_extract_all(df$url,"\\w{2,}(?=\\/)"),"["))[2:3,]
# V1 V2
#2 names names
#3 ani bmc
答案 2 :(得分:0)
使用basename
basename(mapply(sub, pattern = basename(url), replacement = "", x = url, fixed = TRUE))
#[1] "ani" "bmc"
basename(url)
“删除所有路径,直到最后一个路径分隔符,包括最后一个路径分隔符(如果有)”,并返回
[1] "digitalcod-org" "ambulancecod.org"
使用mapply
将url
中每个元素的结果替换为""
,然后再次调用basename
。
答案 3 :(得分:0)
将gsub
与
.*?([^/]+)/[^/]+$
R
中:
urls <- c('https://example.com/names/ani/digitalcod-org','https://example.com/names/bmc/ambulancecod.org' )
gsub(".*?([^/]+)/[^/]+$", "\\1", urls)
这产生
[1] "ani" "bmc"
答案 4 :(得分:0)
这是使用HttpURLConnection
strsplit