我有一个字符串s="CCCGTGCC"
和一个子字符串ss="CC"
。我希望获得s
中启动字符串ss
的所有索引。在我的示例中,我想要取回数组c(1,2,6)
。
是否有任何字符串函数可以实现此目的?请注意,我的字符串格式为"CCCGTGCC"
,而不是c("C","C","C","G","T","G","C","C")
。
grep
只返回字符串中是否存在匹配项,而不是字符串中匹配项的索引,除非我遗漏了某些内容。
答案 0 :(得分:27)
使用gregexpr
尝试perl=TRUE
并使用具有预见断言的perl正则表达式(请参阅?regex
):
gregexpr("(?=CC)","CCCGTGCC",perl=TRUE)
[[1]]
[1] 1 2 7
attr(,"match.length")
[1] 0 0 0