需要提取整个句子,其中中间词以R

时间:2016-11-07 19:29:29

标签: r regex

我需要提取整个句子,其中中间词以R中的特定单词开头。下面是我尝试使用但无法获得所需结果的代码。我是R中正则表达概念的新手。我想提取中间词是'不是'的句子。

  yy <- c("computers arent working", "arent not wkng","scanner arent good","arent scanner good")
  m <- gregexpr('\\w arent ', yy)
  regmatches(yy, m)

上面的代码没有给出我想要的东西。我想要的输出是:

 "computers arent working", "scanner arent good"

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我建议

grep("\\w\\W+arent\\W+\\w", yy, value = TRUE)

grep将找到与正则表达式模式匹配的所有字符串(其中找到部分匹配),并将自己输出值(因为value设置为TRUE)。

正则表达式模式匹配arent 中间字(\w)字符,并且仅包含1个非字(\W+)字符。

Online R demo

yy <- c("computers arent working", "arent not wkng","scanner arent good","arent scanner good")
grep("\\w\\W+arent\\W+\\w", yy, value = TRUE)
## => [1] "computers arent working" "scanner arent good" 

如果您要匹配的单词必须用空格括起来,请将\\W+替换为\\s+(1个或多个空格)。