搜索字符串中的特殊模式:R
问题描述:
我想知道的数字是由1
包围的。但是,如果有多于一个0
而没有被1
打断,它只能算作一个。搜索字符串中的特殊模式:R
string <- "1101000010101111001110"
这是最接近我能做到:
length(gregexpr(pattern ="101",string)[[1]])
预期输出:
5
答
随着gregexpr
,您可以使用前向断言与perl=True
找到重叠的匹配:
(?=...)
是lookahead assertion:
(?=...)
零宽度阳性预测先行断言。例如,
/\w+(?=\t)/
匹配一个单词后跟一个选项卡,不包括$&
中的选项卡。
length(gregexpr("(?=10+1)", string, perl=TRUE)[[1]])
不宜模式是'10 + 1'作为您正在寻找**超过一个0 **?尝试一下,让我知道。 – Rahul
@Rahul感谢当有一个以上的0现在工作。但是当模式重叠时我该怎么办? –