Correspondências sobrepostas em R

Eu pesquisei e consegui encontrar issodiscussão no fórum para obter o efeito de correspondências sobrepostas.

Eu também encontrei o seguinteTÃO pergunta sobre como encontrar índices para executar esta tarefa, mas não conseguiu encontrar nada conciso sobre como obter correspondências sobrepostas na linguagem R.

Eu posso executar esta tarefa na maioria dos idiomas que suportam (PCRE) usando uma asserção Lookahead positiva ao implementar um grupo de captura dentro da lookahead para capturar as correspondências sobrepostas.

Mas, enquanto realmente fazia isso da mesma maneira que faria em outros idiomas, usandoperl=T em R, nenhum resultado rende.

> x <- 'ACCACCACCAC'
> regmatches(x, gregexpr('(?=([AC]C))', x, perl=T))[[1]]
[1] "" "" "" "" "" "" ""

O mesmo vale para o uso de ambos osstringi estringr pacote.

> library(stringi)
> library(stringr)
> stri_extract_all_regex(x, '(?=([AC]C))')[[1]]
[1] "" "" "" "" "" "" ""
> str_extract_all(x, perl('(?=([AC]C))'))[[1]]
[1] "" "" "" "" "" "" ""

Os resultados corretos que devem ser retornados ao executar isso são:

[1] "AC" "CC" "AC" "CC" "AC" "CC" "AC"
Editar

Eu estou bem ciente de queregmatches não funciona bem com correspondências capturadas, mas o queexatamente causa esse comportamento nas regmatches e por que nenhum resultado é retornado?Estou buscando uma resposta um pouco detalhada.

É ostringi estringr pacote não capaz de executar issoregmatches?

Por favor, sinta-se à vontade para adicionar minha resposta ou criar uma solução diferente da que encontrei.

questionAnswers(6)

yourAnswerToTheQuestion