R 正则表达式来提取子域
我想在R中使用正则表达式分离URL的子域 例如:R 正则表达式来提取子域,r,regex,R,Regex,我想在R中使用正则表达式分离URL的子域 例如: week.sddhdjs.net sate.ghdutdjd.org west.lakmeouh.com dhdj.ckisnsns.us?mdeddde werst.urhsbss.xyz?swasrr 所需的输出应该是 sddhdjs.net lakmeouh.com urhsbss.xyz kisnsns.us 你能给我你的IDE吗?你可以用stringr和substring来删除第一个字符(点): 您可以使用sub su
week.sddhdjs.net
sate.ghdutdjd.org
west.lakmeouh.com
dhdj.ckisnsns.us?mdeddde
werst.urhsbss.xyz?swasrr
所需的输出应该是
sddhdjs.net
lakmeouh.com
urhsbss.xyz
kisnsns.us
你能给我你的IDE吗?你可以用
stringr
和substring
来删除第一个字符(点):
您可以使用
sub
sub(".*\\b(\\w+\\.\\w+).*", "\\1", URLs)
[1] "sddhdjs.net" "ghdutdjd.org" "lakmeouh.com" "ckisnsns.us" "urhsbss.xyz"
我建议使用
urltools
软件包
library(urltools)
x <- "http://www.someone.somethingelse.com.cy/images/phfdoc/fhdemiado.tam.fidfhfdde/"
suffix_extract(domain(x))
# host subdomain domain suffix
#1 www.someone.somethingelse.com.cy www.someone somethingelse com.cy
库(urltools)
x下面的函数有两个包:dplyr
&urltools
Subdomain <- function(url)
{
gsub("https://|http://|www.", "", url) %>%
urltools::domain() %>% urltools::suffix_extract() %>%
select(subdomain) %>% unlist(use.names = F)
}
子域%
urltools::domain()%%>%urltools::后缀_extract()%%>%
选择(子域)%%>%n取消列出(use.names=F)
}
输出
x <- c("https://link.abc.com/click", "google.com/flights", "yahoo.co.uk", "mail.yahoo.com")
Subdomain(x)
[1] "link" NA NA "mail"
x您尝试过哪些不起作用的方法?foo%>%separate(URL,into=c(“a”,“b”),sep=“(?gsub(^.*.\.\.\.\.\.\.\124.\\.\?*”,“”,x,perl=TRUE)
非常感谢,它如预期般起作用。我只想在它上面实现更多的东西。再见!这(我猜所有答案)对于TLD为.com.cy
或.ac.uk
等的域将失败。@Sotos你是对的。只有当域不包含
@Sotos时,这才有效。是的,你们是对的。如果域包含像abcd.xxxx.com.ir、abcd.xxxx.com.uy、abcd.xxxx.com.eu等内容,则不起作用。你还有什么想法吗o获得像xxxx.com.uy这样的输出…?…我还在这里进一步调查。谢谢,现在我看到你也要移除端部,我稍后会尝试修复。
Subdomain <- function(url)
{
gsub("https://|http://|www.", "", url) %>%
urltools::domain() %>% urltools::suffix_extract() %>%
select(subdomain) %>% unlist(use.names = F)
}
x <- c("https://link.abc.com/click", "google.com/flights", "yahoo.co.uk", "mail.yahoo.com")
Subdomain(x)
[1] "link" NA NA "mail"