在字符串中搜索特殊模式:R

时间:2017-03-31 19:27:06

标签: r regex

我想知道被0包围的1的数量。但是,如果有多个0没有被1中断,则只计为一个string <- "1101000010101111001110"

length(gregexpr(pattern ="101",string)[[1]])

这是我能做的最接近的事情:

5

预期输出:

#DATA
df = mtcars
colnames(df) = gsub("mpg","id",colnames(df))
df$am = as.factor(df$am)
df$gear = as.factor(df$gear)
df$id = as.factor(df$id)

#Filter out 'id' after selecting factors
df[,sapply(df, is.factor) & colnames(df) != "id"]

1 个答案:

答案 0 :(得分:9)

使用perl=True,您可以使用(?=...)的前瞻断言来查找重叠匹配:

(?=...)lookahead assertion

  

/\w+(?=\t)/

     

零宽度正向前瞻断言。例如,$&匹配单词后跟标签,而不包括length(gregexpr("(?=10+1)", string, perl=TRUE)[[1]]) 中的标签。

case