Is this what you want: > x <- 'xxxx xxxx one two three xxxx xxxx' > y <- > sub(".*?([^[:space:]]+)[[:space:]]+([^[:space:]]+)[[:space:]]+([ehrt]{5}).*", + "\\1 \\2 \\3", x, perl=TRUE) > unlist(strsplit(y, ' ')) [1] "one" "two" "three"
On Sun, Nov 8, 2009 at 1:51 PM, Hadley Wickham <had...@rice.edu> wrote: > Hi all, > > Is there a tool in base R to extract matched expressions from a > regular expression? i.e. given the regular expression "(.*?) (.*?) > ([ehtr]{5})" is there a way to extract the character vector c("one", > "two", "three") from the string "one two three" ? > > Thanks, > > Hadley > > -- > http://had.co.nz/ > > ______________________________________________ > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ 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.