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

and*_*bri 4 regex r

我想知道0周围的人数1.但如果有多个0不被中断,1它只计为一个.

string <- "1101000010101111001110"
Run Code Online (Sandbox Code Playgroud)

这是我能做的最接近的:

length(gregexpr(pattern ="101",string)[[1]])
Run Code Online (Sandbox Code Playgroud)

预期产量:

5
Run Code Online (Sandbox Code Playgroud)

m0n*_*awk 9

有了gregexpr您可以使用前向断言以perl=True找到重叠的匹配:

(?=...)是一个先行断言:

(?=...)

零宽度正向前瞻断言.例如,/\w+(?=\t)/匹配单词后跟选项卡,而不包括选项卡$&.

length(gregexpr("(?=10+1)", string, perl=TRUE)[[1]])
Run Code Online (Sandbox Code Playgroud)