我试图清理并删除R中的URL列表中的目录
是)我有的:
http://domain.com/123
http://www.sub.domain1.com/222
http://www.domain2.com/1233/abc
Run Code Online (Sandbox Code Playgroud)
我想要的是:
domain.com
sub.domain1.com
domain2.com
Run Code Online (Sandbox Code Playgroud)
我有一个很长的方法来清理URL的开头
url <- c("http://domain.com/123", "http://www.sub.domain1.com/222","http://www.domain2.com/1233/abc"
cleanurl <- gsub("http://","",url)
cleanurl2 <- gsub("www.","",cleanurl)
Run Code Online (Sandbox Code Playgroud)
(如果有更简单的方法来清理http://和www,请告诉我.)
现在我遇到了正则表达式的问题,并/在结束后删除了所有内容.我试过这个
cleanurl3 <- gsub("/*","",cleanurl2)
Run Code Online (Sandbox Code Playgroud)
但它只是删除了/而不是它后面的一切.
在此先感谢您的帮助!
我使用strsplit/ gsubcombo(不仅仅是gsubb/c,有时它很快就会弄清楚,strsplit因为它非常直观):
x <- readLines(n=3)
http://domain.com/123
http://www.sub.domain1.com/222
http://www.domain2.com/1233/abc
gsub("www.", "", sapply(strsplit(x, "//|/"), "[", 2))
## > gsub("www.", "", sapply(strsplit(x, "//|/"), "[", 2))
## [1] "domain.com" "sub.domain1.com" "domain2.com"
Run Code Online (Sandbox Code Playgroud)
编辑
或者如果你想使用strsplit(根据马修的建议):
sapply(strsplit(x, "(//|/)(www[.])?"), "[", 2)
Run Code Online (Sandbox Code Playgroud)
为了第一:
cleanurl <- sub("^http://(?:www[.])?(.*)$", "\\1", url)
cleanurl
## [1] "domain.com/123" "sub.domain1.com/222" "domain2.com/1233/abc"
Run Code Online (Sandbox Code Playgroud)
只是域:
cleanurl <- sub("^http://(?:www[.])?([^/]*).*$", "\\1", url)
cleanurl
## [1] "domain.com" "sub.domain1.com" "domain2.com"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |