[Rd] gregexpr - match overlap mishandled (PR#13391)

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Dec 12 20:23:07 CET 2008


Please do your own homework: the help page says

      For 'gregexpr' a list of the same length as 'text' each element of
      which is an integer vector as in 'regexpr', except that the
      starting positions of every (disjoint) match are given.
                                   ^^^^^^^^

If that is still not clear enough for you, please ask your supervisor for 
remedial help.

On Fri, 12 Dec 2008, rthompso at aecom.yu.edu wrote:

> Full_Name: Reid Thompson
> Version: 2.8.0 RC (2008-10-12 r46696)
> OS: darwin9.5.0
> Submission from: (NULL) (129.98.107.177)
>
>
> the gregexpr() function does NOT return a complete list of global matches as it
> should.  this occurs when a pattern matches two overlapping portions of a
> string, only the first match is returned.
>
> the following function call demonstrates this error (although this is not how I
> initially discovered the problem):
> gregexpr("11221122", paste(rep("1122", 10), collapse=""))
>
> instead of returning 9 matches as one would expect, only 5 matches are returned
> . . .
>
> [[1]]
> [1]  1  9 17 25 33
> attr(,"match.length")
> [1] 8 8 8 8 8
>
> you will note, essentially, that the entire first match is then excluded from
> subsequent matching
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list