R 正则表达式来提取子域

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

我想在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

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"