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

时间:2011-10-24 16:49:09

标签: r grep character

我有一个字符串s="CCCGTGCC"和一个子字符串ss="CC"。我希望获得s中启动字符串ss的所有索引。在我的示例中,我想要取回数组c(1,2,6)

是否有任何字符串函数可以实现此目的?请注意,我的字符串格式为"CCCGTGCC",而不是c("C","C","C","G","T","G","C","C")

grep只返回字符串中是否存在匹配项,而不是字符串中匹配项的索引,除非我遗漏了某些内容。

1 个答案:

答案 0 :(得分:27)

使用gregexpr尝试perl=TRUE并使用具有预见断言的perl正则表达式(请参阅?regex):

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