我有一个变量a
由readLines
创建的文件包含一些电子邮件。我已经只过滤了那些带有@符号的行,现在正在努力抓住电子邮件。在我的变量的文本看起来是这样的:R gsub从文本中提取电子邮件
> 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. "
)
从this问题的,所以我就一个起点提取电子邮件(@Aaron Haurun的答案),其略作修改(我加了一个[\w.]
的@
前解决电子邮件与名称之间的.
)在regex101.com中运行良好,可以提取电子邮件。但是,它未能当我把它移植到gsub
:
> gsub("()(\\w[\\w.][email protected][\\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. "
什么我做错了,我怎么能抓住这些电子邮件?谢谢!
使用stringr'str_extract'喜欢的东西'“关于解决\ \ S + @ [^ \\小号@。] + \\。\\ S +“'。可能有很多其他的电子邮件提取正则表达式(只是搜索) –