如何获取R中两个单词之间的文本?

如何获取R中两个单词之间的文本?,r,string,R,String,我试图在一个句子的两个单词之间找到文本。 例如: x <- "This is my first sentence" 它给出的输出是 [1] "is my sentence" 事实上,我需要的只是 [1] "is my" 任何帮助都将不胜感激 您需要在结尾处使用*来匹配“first”之后的零个或多个字符 gsub('^.*This\\s*|\\s*first.*$', '', x) #[1] "is my" 另一种方法是使用qdapRegex软件包 library(qdap

我试图在一个句子的两个单词之间找到文本。
例如:

x <-  "This is my first sentence"
它给出的输出是

 [1] "is my  sentence"
事实上,我需要的只是

[1] "is my"

任何帮助都将不胜感激

您需要在结尾处使用
*
来匹配“first”之后的零个或多个字符

 gsub('^.*This\\s*|\\s*first.*$', '', x)
 #[1] "is my"
另一种方法是使用qdapRegex软件包

library(qdapRegex)
rm_between(x, 'This', 'first', extract=TRUE)[[1]]
# [1] "is my"

由于这个问题被用作参考,我将添加一些可能的解决方案来构建一个完整的概述。两者都基于一个
向前看/向后看
正则表达式模式

基本R

regmatches( x, gregexpr("(?<=This ).*(?= first)", x, perl = TRUE ) )
regmatches(x,gregexpr(“(?)?
regmatches( x, gregexpr("(?<=This ).*(?= first)", x, perl = TRUE ) )
stringr::str_extract_all( x, "(?<=This ).+(?= first)" )