[英]Extract e-mail address from string using r
這是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"
根據.com.ar
的評論,如果您想像在示例.com.ar
那樣在.com
之后保留國家/地區標識符,請查看以下內容:
> 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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.