Ответ 1
Попробуйте gregexpr
с perl=TRUE
и используйте регулярные выражения perl с прогнозными утверждениями (см. ?regex
):
gregexpr("(?=CC)","CCCGTGCC",perl=TRUE)
[[1]]
[1] 1 2 7
attr(,"match.length")
[1] 0 0 0
У меня есть строка, s="CCCGTGCC"
и подстрока ss="CC"
. Я хочу получить все индексы в s
, которые начнут строку ss
. В моем примере я хотел бы вернуть массив c(1,2,6)
.
Есть ли какая-либо строковая функция, которая достигает этого? Обратите внимание, что моя строка находится в форме "CCCGTGCC"
, а не c("C","C","C","G","T","G","C","C")
.
grep
возвращает только совпадение в любом месте строки, а не индексы совпадений внутри строки, если я ничего не пропущу.
Попробуйте gregexpr
с perl=TRUE
и используйте регулярные выражения perl с прогнозными утверждениями (см. ?regex
):
gregexpr("(?=CC)","CCCGTGCC",perl=TRUE)
[[1]]
[1] 1 2 7
attr(,"match.length")
[1] 0 0 0