Перекрывающиеся спички в 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
?
Пожалуйста, не стесняйтесь добавлять к моему ответу или придумать другой обходной путь, чем я нашел.