查找多个/重叠匹配子string的索引

我有一个string, s="CCCGTGCC"和一个子stringss="CC" 。 我想得到所有的索引在s开始stringss 。 在我的例子中,我想要取回数组c(1,2,6)

有没有任何string函数实现了这一点? 请注意,我的string格式为"CCCGTGCC" ,而不是c("C","C","C","G","T","G","C","C")

grep只返回string中是否有匹配项,而不是string中匹配项的索引,除非我丢失了一些东西。

使用perl=TRUE尝试gregexpr ,并使用perl正则expression式和gregexpr断言(请参阅?regex ):

 gregexpr("(?=CC)","CCCGTGCC",perl=TRUE) [[1]] [1] 1 2 7 attr(,"match.length") [1] 0 0 0