gpt4 book ai didi

regex - 使用 r 从字符串中提取电子邮件地址

转载 作者:行者123 更新时间:2023-12-04 17:10:03 24 4
gpt4 key购买 nike

这些是 5 个 Twitter 用户描述。这个想法是从每个字符串中提取电子邮件。

这是我试过的代码,它有效,但可能有更好的东西。
我宁愿避免使用 unlist() 并使用正则表达式一次性完成。我已经看到了针对 python/perl/php 但没有针对 R 的其他问题。
我知道我可以使用 grep(..., perl = TRUE) 但这不应该是唯一的方法。
如果有效,当然会有帮助。

ds <- c("#MillonMusical | #PromotorMusical | #Diseñador | Contacto :        ezequielife@gmail.com | #Instagram : Ezeqielgram | 01-11-11 |           @_MillonMusical @flowfestar", "LipGLosSTudio by: SAndry RUbio           Maquilladora PRofesional estudiande de diseño profesional de maquillaje     artistico lipglosstudio@hotmail.com/", "Medico General Barranquillero   radicado con su familia en Buenos Aires para iniciar Especialidad       Medico Quirurgica. email jaenpavi@hotmail.com", "msn =
rdt031169@hotmail.comskype = ronaldotorres-br", "Aguante piscis / manuarias17@gmail.com buenos aires"
)

ds <- unlist(strsplit(ds, ' '))
ds <- ds[grep("mail.", ds)]

> print(ds)
[1] "\t\tezequielife@gmail.com" "lipglosstudio@hotmail.com/"
[3] "jaenpavi@hotmail.com" "rdt031169@hotmail.comskype"
[5] "/\t\tmanuarias17@gmail.com"

最好将这个“rdt031169@hotmail.comskype”分开
也许要求它以 .com 或 .com.ar 结尾,这对我的工作有意义

最佳答案

这是一种选择:

> regmatches(ds, regexpr("[[:alnum:]]+\\@[[:alpha:]]+\\.com", ds))
[1] "ezequielife@gmail.com" "lipglosstudio@hotmail.com" "jaenpavi@hotmail.com" "rdt031169@hotmail.com"
[5] "manuarias17@gmail.com"

根据@Frank 的评论,如果您想在 .com 之后保留国家/地区标识符如您的示例 .com.ar然后,看看这个:
> ds <- c(ds, "fulanito13@somemail.com.ar")  # a new e-mail address
> regmatches(ds, regexpr("[[:alnum:]]+\\@[[:alpha:]]+\\.com(\\.[a-z]{2})?", ds))
[1] "ezequielife@gmail.com" "lipglosstudio@hotmail.com" "jaenpavi@hotmail.com" "rdt031169@hotmail.com"
[5] "manuarias17@gmail.com" "fulanito13@somemail.com.ar"

关于regex - 使用 r 从字符串中提取电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19896743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com