如何创建一个文本块中包含的电子邮件地址数组?我试过了
addrs = text.scan(/ .+?@.+? /).map{|e| e[1...-1]}
但是(毫不奇怪)它不能可靠地工作.
我有一个a由readLines包含一些电子邮件的文件创建的变量。我已经只过滤了那些带有@ 符号的行,现在正在努力获取电子邮件。我的变量中的文本如下所示:
> dput(a[1:5])
c("buenas tardes. excelente. por favor a: Saolonm@hotmail.com",
"26.leonard@gmail.com ", "Aprecio tu aporte , mi correo es jcdavola31@gmail.com , Muchas Gracias",
"gracias andrescarnederes@headset.cl", "Me apunto, muchas gracias mi dirección luciana.chavela.ecuador@gmail.com me será de mucha utilidad. "
)
Run Code Online (Sandbox Code Playgroud)
从SO 中的这个问题中,我得到了一个提取电子邮件的起点(@Aaron Haurun 的回答),该方法略有修改(我[\w.]在@地址.之间添加了一个名称之间的电子邮件)在 regex101.com 中可以很好地提取电子邮件。但是,当我将它移植到gsub:
> gsub("()(\\w[\\w.]+@[\\w.-]+|\\{(?:\\w+, *)+\\w+\\}@[\\w.-]+)()",
"\\2",
a[1:5],
perl = FALSE) ## It doesn't matter if I use perl = TRUE
[1] "buenas …Run Code Online (Sandbox Code Playgroud)