我正在尝试使用stringr库从一个大的,凌乱的文件中提取电子邮件.
str_match不允许perl = TRUE,我无法找出转义符来使其工作.
有人可以推荐一个相对强大的正则表达式,可以在下面的上下文中工作吗?
c("larry@gmail.com","larry-sally@sally.com","larry@sally.larry.com")->emails "SomeRegex"->regex str_match(emails,regex)
> "^[[:alnum:].-_]+@[[:alnum:].-]+$"->regex > str_match(emails,regex) [,1] [1,] "larry@gmail.com" [2,] "larry-sally@sally.com" [3,] "larry@sally.larry.com"
@ -sign不需要在正则表达式中转义.并且“.”和“ – ”在字符类中并不特殊.如果要添加“.com”,“.co”,“.redu”,“.org”的要求,则应指定该列表的完整程度.
正如M42所指出的,这不是一种万无一失的方法.事实上,它声称没有确定的方法:Using a regular expression to validate an email address