Re: [R] regexp capturing group in R

2009-02-24 Thread Christos Hatzis
I don't know if there is a direct, perl-like way to capture the matches, but here is a solution: > mdat <- gregexpr("[[:digit:]]{8}", txt) > dates <- mapply(function(x, y) substr(txt, x, x + y - 1), mdat[[1]], attr(mdat[[1]], "match.length")) > dates [1] "20080101" "20090224" -Christos > -

Re: [R] regexp capturing group in R

2009-02-24 Thread Gabor Grothendieck
Try this: library(gsubfn) strapply("blah blah start=20080101 end=20090224", "start=(\\d{8}) end=(\\d{8})", c, perl = TRUE)[[1]] or perhaps just: strapply("blah blah start=20080101 end=20090224", "\\d{8}", perl = TRUE)[[1]] On Tue, Feb 24, 2009 at 7:23 PM, wrote: > Hello, > > Newbie question

Re: [R] regexp capturing group in R

2009-02-24 Thread jim holtman
> txt <- "blah blah start=20080101 end=20090224" > nums <- sub(".*start=(\\d+).*end=(\\d+).*", "\\1 \\2", txt, perl=TRUE) > nums <- strsplit(sub(".*start=(\\d+).*end=(\\d+).*", "\\1 \\2", txt, > perl=TRUE), ' ') > nums [[1]] [1] "20080101" "20090224" On Tue, Feb 24, 2009 at 7:23 PM, wrote: >