strapply in the gsubfn package can do that. It applies the indicated
function, here just c, to the back references from the pattern match
and then simplifies the result using simplify. (If you omit simplify
here it would give a one element list like strsplit does.)

library(gsubfn)
pat <- "(.*?) (.*?) ([ehtr]{5})"
strapply("one two three", pat, c, simplify = c)

See home page at: http://gsubfn.googlecode.com


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.
>

______________________________________________
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.

Reply via email to