我有像
这样的字符串'abbb'
我需要了解有多少次我能找到子串' bb'。
grep('bb','abbb')
返回1
。因此,答案是2
(a-bb和ab-bb)。我怎样才能按照我需要的方式计算出现次数?
答案 0 :(得分:6)
您可以使用'(?=bb)'
使模式不消耗,如:
length(gregexpr('(?=bb)', x, perl=TRUE)[[1]])
[1] 2
答案 1 :(得分:3)
这是一个使用substr和sapply的丑陋方法:
input <- "abbb"
search <- "bb"
res <- sum(sapply(1:(nchar(input)-nchar(search)+1),function(i){
substr(input,i,i+(nchar(search)-1))==search
}))
答案 2 :(得分:1)
我们可以使用stri_count
library(stringi)
stri_count_regex(input, '(?=bb)')
#[1] 2
stri_count_regex(x, '(?=bb)')
#[1] 0 1 0
input <- "abbb"
x <- c('aa','bb','ba')