我需要提取整个句子,其中中间词以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"
感谢您的帮助!
答案 0 :(得分:1)
我建议
grep("\\w\\W+arent\\W+\\w", yy, value = TRUE)
grep
将找到与正则表达式模式匹配的所有字符串(其中找到部分匹配),并将自己输出值(因为value
设置为TRUE
)。
正则表达式模式匹配arent
中间字(\w
)字符,并且仅包含1个非字(\W+
)字符。
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个或多个空格)。