我有一个包含一些电子邮件的文件a
创建的变量readLines
。我已经只过滤了带有@符号的行,现在正努力抓取电子邮件。我的变量中的文本如下所示:
> dput(a[1:5])
c("buenas tardes. excelente. por favor a: [email protected]",
"[email protected] ", "Aprecio tu aporte , mi correo es [email protected] , Muchas Gracias",
"gracias [email protected]", "Me apunto, muchas gracias mi dirección [email protected] me será de mucha utilidad. "
)
从这个问题中,我得到了一个提取电子邮件的起点(@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 tardes. excelente. por favor a: [email protected]" "[email protected] "
[3] "Aprecio tu aporte , mi correo es [email protected] , Muchas Gracias" "gracias [email protected]"
[5] "Me apunto, muchas gracias mi dirección [email protected] me será de mucha utilidad. "
我在做什么错了,我该如何抓取这些电子邮件?谢谢!
我们可以尝试str_extract()
fromstringr
包:
str_extract(text, "\\S*@\\S*")
[1] "[email protected]"
[2] "[email protected]"
[3] "[email protected]"
[4] "[email protected]"
[5] "[email protected]"
其中,\\S*
匹配任何数量的非空格字符的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句