regex 提取关键字[closed]后面的三个单词

wsewodh2  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(123)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

3天前关闭。
这篇文章是编辑和提交审查3天前。
Improve this question
这个用R代码编写的正则表达式提取关键字和它们后面的单词:

regex <- paste0("(?i)\\b", keywords, "\\b\\s+(\\w+\\s+){0,2}(?!\\b", keywords, "\\b)\\w+")

我如何修改它,使它只提取关键字后面的三个词,不包括关键字本身?例如,如果句子“太阳是美丽的”中的关键字是“太阳”,那么我想提取“是美丽的”:

sentences <- "the sun is beautiful"
keywords <- "sun"
9gm1akwq

9gm1akwq1#

这是可行的:

library(stringr)
keyword <- "sun"
sentence <- "the sun is beautiful"
regex <- paste0(keyword, "((\\s\\w+){1,3})")
str_match(sentence, regex)[2]

我希望这能有所帮助:)

----编辑:- ——-

如果您有多个关键字和多次出现,请尝试以下操作:

library(stringr)
sentence <- "the sun is beautiful today. the sun shines really bright in NY"
keywords <- c("really", "sun")
regex <- paste0(keywords, "((\\s\\w+){1,3})")
unlist(mapply(rbind.data.frame, str_match_all(sentence, regex))[2, ])

相关问题