R编程 - 如何从使用gregexpr给出的字符串中提取以下内容?

时间:2017-06-02 01:39:48

标签: r regex grep

如果给出以下字符串,我该如何提取出电子邮件地址? 我想要提取的电子邮件地址由<>专门附上写道:

egstring = 'blah blah blah <taylor_swift@gmail.com> wrote: blah blah blah'

以下是我到目前为止的尝试。

pos = gregexpr('(?<=(\\<))([a-z0-9.]+\\@[a-z0-9.]+)(?=(\\>\\swrote\\:))',egstring,perl=TRUE)[[1]]

我想要实现的目标:

"taylor_swift@gmail.com"

我得到了什么:

[1] -1
attr(,"match.length")
[1] -1
attr(,"useBytes")
[1] TRUE
attr(,"capture.start")

[1,] -1 -1 -1
attr(,"capture.length")

[1,] -1 -1 -1
attr(,"capture.names")
[1] "" "" ""

我无法弄清楚出了什么问题。 :/

1 个答案:

答案 0 :(得分:1)

使用gsub()可以:

 gsub(".*<(.*)>.*", "\\1", egstring)