REGEX提取子域

时间:2018-05-29 12:57:06

标签: r regex

我想在R中使用Regex分隔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

你能告诉我你的想法吗?

4 个答案:

答案 0 :(得分:2)

我会推荐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

注意:显然您需要删除前导www,这可以通过简单的正则表达式或任何字符串拆分方法来完成

答案 1 :(得分:1)

您可以在基座R中使用sub

执行此操作
sub(".*\\b(\\w+\\.\\w+).*", "\\1", URLs) 
[1] "sddhdjs.net"  "ghdutdjd.org" "lakmeouh.com" "ckisnsns.us"  "urhsbss.xyz"

答案 2 :(得分:0)

您可以使用open test.bin wb stringr来删除第一个字符(点):

substring

输出:

array <- c('week.sddhdjs.net',
           'sate.ghdutdjd.org',
           'west.lakmeouh.com',
           'dhdj.ckisnsns.us?mdeddde',
           'werst.urhsbss.xyz?swasrr')]

library(stringr)
array <- str_extract(array, '\\.\\S+') %>% substring(2)

答案 3 :(得分:0)

下面两个包的函数:dplyr & urltools

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"