电子邮件提取在R



我正在尝试从描述中提取所有的电子邮件id。

> string <- c("From : William KWANG (TLA) To : Melissa_FOO@nba.gov.sd,feedback@tla.gov.sd,Milly_YUEN@tla.gov.sd,Faridah_B_SALLEH@tla.gov.sd,
+ Muhamad_Rosli_MOKTAR@tla.gov.sd cc : Juzaidi_LASA@nba.gov.sd,Kamis_TAHIR@nba.gov.sd,TAN_Xiao_Wei@nba.gov.sd Bcc : Sent On : Wed Mar 04 16:46:29 SGT 2015")
> str_extract_all(string=string,pattern="\b[-A-Za-z0-9_.%]+\@[-A-Za-z0-9_.%]+\.[A-Za-z]+ ")
[[1]]
[1] "Muhamad_Rosli_MOKTAR@tla.gov.sd " "TAN_Xiao_Wei@nba.gov.sd " 

但是我不能提取所有的电子邮件id。

我的问题是,在to: list中提到的电子邮件列表中有逗号,但查询获取最后的结果。

正则表达式的尾随空格是问题所在。唯一符合该条件的地址是Muhamad_Rosli_MOKTAR@tla.gov.sd TAN_Xiao_Wei@nba.gov.sd,因为它们是唯一具有尾空格的地址。所以删掉它:

string <- c("From : William KWANG (TLA) To : Melissa_FOO@nba.gov.sd,feedback@tla.gov.sd,Milly_YUEN@tla.gov.sd,Faridah_B_SALLEH@tla.gov.sd,Muhamad_Rosli_MOKTAR@tla.gov.sd cc : Juzaidi_LASA@nba.gov.sd,Kamis_TAHIR@nba.gov.sd,TAN_Xiao_Wei@nba.gov.sd Bcc : Sent On : Wed Mar 04 16:46:29 SGT 2015")
str_extract_all(string=string,pattern="\b[-A-Za-z0-9_.%]+\@[-A-Za-z0-9_.%]+\.[A-Za-z]+")
[[1]]
[1] "Melissa_FOO@nba.gov.sd"          "feedback@tla.gov.sd"             "Milly_YUEN@tla.gov.sd"           "Faridah_B_SALLEH@tla.gov.sd"    
[5] "Muhamad_Rosli_MOKTAR@tla.gov.sd" "Juzaidi_LASA@nba.gov.sd"         "Kamis_TAHIR@nba.gov.sd"          "TAN_Xiao_Wei@nba.gov.sd"   

请注意,这可能适用于您在这里做的任何事情,但众所周知,电子邮件地址很难用正则表达式解释,所以不要期望此方法适用于您可能遇到的每个地址。

最新更新