1

I would like to validate (select) db with the appropriate email format.

SO related post here

Example: Selecting the appropriate format:

example.data <- c("[email protected]","mailto:[email protected]","@tint.com",
"tint@","tint.tint.com",
"orange.com","orange@orange","[email protected]",
"e-mail: [email protected]","mailto:%[email protected]")

desired.out <- c("[email protected]","mailto:[email protected]","[email protected]",
    "[email protected]","[email protected]")

Would someone share working solution? Thanks.

Community
  • 1
  • 1
Maximilian
  • 4,177
  • 7
  • 46
  • 85

1 Answers1

2

You can try

 v1 <- grep('^[^@]+@[^@]+\\.[^.]+$', example.data, value=TRUE)
 v1
 #[1] "[email protected]"                 "mailto:[email protected]"         
 #[3] "[email protected]"             "e-mail: [email protected]"  
 #[5] "mailto:%[email protected]"

To clean the strings, may be

 sub('^[^:]+:( |%\\d+)?', '', v1)
 #[1] "[email protected]"       "[email protected]"       "[email protected]"  
 #[4] "[email protected]" "[email protected]"


 grep('^[^@]+@[^@]+\\.[^.]+$', '[email protected]', value=TRUE)
 #[1] "[email protected]"
akrun
  • 874,273
  • 37
  • 540
  • 662