【问题标题】:Search special pattern in string: R在字符串中搜索特殊模式:R
【发布时间】:2017-04-01 03:36:34
【问题描述】:

我想知道被1包围的0的数量。但是,如果有多个0 而没有被1 打断,则它只能算作一个。

string <- "1101000010101111001110"

这是我能做到的最接近的:

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

预期输出:

5

【问题讨论】:

  • 不应该是10+1,因为您正在寻找多个0?试试看,让我知道。
  • @Rahul 感谢当有多个 0 时它现在可以工作。但是当模式重叠时我该怎么办?

标签: r regex


【解决方案1】:

使用gregexpr,您可以使用带有perl=True 的前瞻断言来查找重叠匹配:

(?=...) 是lookahead assertion:

(?=...)

一个零宽度的正向前瞻断言。例如,/\w+(?=\t)/ 匹配一个单词后跟一个制表符,但不包括$&amp; 中的制表符。

length(gregexpr("(?=10+1)", string, perl=TRUE)[[1]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多