Hi, May be this helps: dat <- read.table(text="Emails mal...@gmail.com mah...@gmail.com ravi_...@yahoo.com lavk....@rediff.com",sep="",header=TRUE,stringsAsFactors=FALSE)
setNames(cbind(dat,do.call(rbind,strsplit(gsub(".com","",gsub("^([[:alpha:]]+)(\\d+.*)","\\1_\\2",dat$Emails)),"[_@.]"))),c("Emails","f.name","l.name","domain")) # Emails f.name l.name domain #1 mal...@gmail.com Mal 123 gmail #2 mah...@gmail.com Mahi r gmail #3 ravi_...@yahoo.com Ravi 123 yahoo #4 lavk....@rediff.com Lavk lll rediff A.K. Hi, Emails mal...@gmail.com mah...@gmail.com ravi_...@yahoo.com lavk....@rediff.com I need split firstname,lastname,domail(only gmail,not gmail.com),also 123 in last name,so please give me help Output is Emails f.name l.name domain mal...@gmail.com mal 123 gmail mah...@gmail.com mahi r gmail ravi_...@yahoo.com ravi 123 gmail lavk....@rediff.com Please give me solution ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.