Use a zero lookaround expression.  It will not consume its match.  See ?regexp

> gregexpr("a(?=a)", "aaa", perl = TRUE)
[[1]]
[1] 1 2
attr(,"match.length")
[1] 1 1


On Sun, Dec 20, 2009 at 1:43 AM, Jonathan <jonsle...@gmail.com> wrote:
> Last one for you guys:
>
> The command:
>
> length(gregexpr('cus','hocus pocus')[[1]])
> [1] 2
>
> returns the number of times the substring 'cus' appears in 'hocus pocus'
> (which is two)
>
> It's returning the number of **disjoint** matches.  So:
>
> length(gregexpr('aa','aaa')[[1]])
>  [1] 1
>
> returns 1.
>
> **What I want to do:**
> I'm looking for a way to count all occurrences of the substring, including
> overlapping sets (so 'aa' would be found in 'aaa' two times, because the
> middle 'a' gets counted twice).
>
> Any ideas would be much appreciated!!
>
> Signing off and thanks for all the great assistance,
> Jonathan

______________________________________________
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