Find overlapping matches for a regular expression.

refindall(s, pat, over = 1, ignorecase = FALSE)

Arguments

s

Single character string.

pat

Regular expression.

over

Natural number, indication how many steps to go forward after a match; defaults to 1.

ignorecase

logical, whether to ignore case.

Details

Returns the starting position of all — even overlapping — matches of the regular expression pat in the character string s.

The syntax for pattern matching has to be PERL-like.

Value

A numeric vector with the indices of starting positions of all matches.

Note

This effect can also be reached with the R function gregexpr(), see the example below.

See also

Examples

refindall("ababababa", 'aba')
#> [1] 1 3 5 7
gregexpr('a(?=ba)', "ababababa", perl=TRUE)
#> [[1]]
#> [1] 1 3 5 7
#> attr(,"match.length")
#> [1] 1 1 1 1
#> attr(,"index.type")
#> [1] "chars"
#> attr(,"useBytes")
#> [1] TRUE
#> 

refindall("AbababaBa", 'aba')
#> [1] 3 5
refindall("AbababaBa", 'aba', ignorecase = TRUE)
#> [1] 1 3 5 7