извлечь текст из электронной почты и между двумя точками в R

У меня есть адрес электронной почты, с которого я пытаюсь извлечь домен. Я нашел решение здесь, но оно слишком длинная.

Я пытаюсь использовать следующий подход:

Сначала удалите весь текст перед знаком @.

gsub("@(.+)$", "\\1", emails)

Другое - не используется

qdapRegex::ex_between(emails, ".", ".")

Данные:

emails <- c("[email protected]", "[email protected]", "[email protected]", 
"[email protected]", "[email protected]", "[email protected]", 
"[email protected]", "[email protected]", "[email protected]", 
"[email protected]")

person user8959427    schedule 21.05.2020    source источник
comment
твой подход был близок: gsub(".*@(.+)$", "\\1", emails)   -  person rawr    schedule 21.05.2020


Ответы (3)


Вы можете попробовать следующее:

str_sub(emails, str_locate(emails, "@")[,1]+1) 

Выход:

[1] "hotmail.com"  "iueywapp.com"  "lasdfsdfsdstores.com" "mobsdaff.com"        
[5] "hotmail.org"  "sdffsddapp.com"  "mwerqwie.com"      "niweqrerw.tv"        
[9] "hotmail.com"  "moweqrewsfaslay.com" 
person iamericfletcher    schedule 21.05.2020
comment
Мне удалось выяснить, как удалить все, что осталось от @. Кто-нибудь знает, как я добавляю, чтобы мы могли также удалить все справа от . также? - person iamericfletcher; 21.05.2020

как насчет

sub(".*@(.*)\\..*","\\1",emails)

 [1] "hotmail"          "iueywapp"         "lasdfsdfsdstores" "mobsdaff"        
 [5] "hotmail"          "sdffsddapp"       "mwerqwie"         "niweqrerw"       
 [9] "hotmail"          "moweqrewsfaslay" 

или если вы хотите все после @:

sub(".*@","",emails)

 [1] "hotmail.com"          "iueywapp.com"         "lasdfsdfsdstores.com"
 [4] "mobsdaff.com"         "hotmail.org"          "sdffsddapp.com"      
 [7] "mwerqwie.com"         "niweqrerw.tv"         "hotmail.com"         
[10] "moweqrewsfaslay.com" 
person Daniel O    schedule 21.05.2020

Мы можем использовать trimws из base R

trimws(emails, whitespace= '.*@')
#[1] "hotmail.com"          "iueywapp.com"         "lasdfsdfsdstores.com" "mobsdaff.com"         "hotmail.org"          "sdffsddapp.com"      
#[7] "mwerqwie.com"         "niweqrerw.tv"         "hotmail.com"          "moweqrewsfaslay.com" 
trimws(emails, whitespace= '.*@|\\..*')
#[1] "hotmail"          "iueywapp"         "lasdfsdfsdstores" "mobsdaff"         "hotmail"          "sdffsddapp"       "mwerqwie"        
#[8] "niweqrerw"        "hotmail"          "moweqrewsfaslay" 
person akrun    schedule 21.05.2020