我有一个包含URL的样本向量。我的目标是获取URL的路径。
然而,这种方法无法处理带有
sample1 <- c("http://tercihblog.com/indirisu/docugard/", "http://funerariagomez.com/js/ggogle/a201209e3f79b740337b7bdb521630fe/",
"http://www.t-online.de/contacts/2015/08/atlas.html/", "http://mgracetimber.ie/wp-content/themes/Banner/db/box/",
"http://zamartrade.com/cs/DHL/DHL%20_%20Tracking.htm/", "http://dunhamengineering.com/menu/Auto-loadgoogleDrive/Document.Index/",
"http://www.indiegogo.com/guide/forum/2014/09/forgot-password/",
"http://raetc.com/wp-admin/Service/clients/votre-compte/en-ligne/imp-rem.fr/",
"http://www.lidanhang.com/img/?https://secure.runescape.com/m=weblogin/loginform.ws?mod=www&hwjklxlamp;ssl=0&dest/",
"http://www.sudaener.com/wp-includes/js/crop/dropbox/", "https://zeustracker.abuse.ch/blocklist.php/",
"https://zeustracker.abuse.ch/blocklist.php?download=hostsdeny/",
"https://zeustracker.abuse.ch/blocklist.php?download=iptablesblocklist/",
"https://zeustracker.abuse.ch/blocklist.php?download=snort/",
"https://zeustracker.abuse.ch/blocklist.php?download=squiddomain/"
)
我的初始尝试是这样的:
gsub('http://[^/]+/','/',sample1)
然而,这种方法无法处理带有
https://
的 URL。一个可行的解决方案是将第三个 "/"
之前的内容全部去除。我想知道如何使用 正则表达式
实现这一点,是否也可以使用 子字符串
来实现。
谢谢
gsub('https?://[^/]+/','/',sample1)
代替?(s?
表示 "s" 出现 0 或 1 次)。 - Cathstrsplit
的方法,但是正如你所看到的,gsub
更加合理:sapply(sample1, function(s) paste0(c('', unlist(strsplit(s, '/'))[-(1:3)]), collapse='/'), USE.NAMES=FALSE)
。 - cr3