Перекрывающиеся спички в R

Я искал и смог найти этообсуждение на форуме для достижения эффекта перекрывающихся спичек.

Я также нашел следующееТАК Говорил о поиске индексов для выполнения этой задачи, но не смог найти ничего краткого о получении перекрывающихся совпадений в языке R.

Я могу выполнить эту задачу практически на любом языке, который поддерживает (PCRE) с использованием положительного утверждения Lookahead при реализации группы захвата внутри Lookahead для захвата перекрывающихся совпадений.

Но, фактически выполняя это так же, как и на других языках, используяperl=T в R нет результатов.

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

То же самое касается использования какstringi а такжеstringr пакет.

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

Правильные результаты, которые должны быть возвращены при выполнении этого:

[1] "AC" "CC" "AC" "CC" "AC" "CC" "AC"
редактировать

Я хорошо знаю, чтоregmatches плохо работает с захваченными матчами, но чтоименно так вызывает такое поведение в соответствиях и почему не возвращаются результаты?Я собираюсь получить несколько подробный ответ.

Этоstringi а такжеstringr пакет не способен выполнить это болееregmatches?

Пожалуйста, не стесняйтесь добавлять к моему ответу или придумать другой обходной путь, чем я нашел.

Ответы на вопрос(6)

Ваш ответ на вопрос