我有以下向量:
vector_3 <- c("oh me oh my", "hello", "oleo", "how ostensible")
我想知道哪个元素包含e
之前的h
。
我尝试过
grep("(?<!h).*e", vector_3, perl = T)
但这没用。代码应该返回3
,因为第三个元素是唯一包含e
且前面没有h
的元素。
我在做什么错了?
答案 0 :(得分:3)
grep("^[^h]*e", vector_3, perl = TRUE)
#[1] 3
您的第一个问题是.*
可以包含“ h”。可以通过negated character class来解决。如果使用它,则不需要后面的内容。
您还需要字符串锚开头。否则,每个“ e”都将是一个匹配项。