gpt4 book ai didi

r - 使用 grepl 匹配某些词,但仅在其他词不能出现的特定上下文中使用

转载 作者:行者123 更新时间:2023-12-04 12:11:43 24 4
gpt4 key购买 nike

假设这是我的数据...

mydata<-data.frame(text=c("There are books.","Books are bad.", "I like to read books."))

...我将如何使用 grepl 匹配出现“book(s)”但“bad”不出现的行(即第 1 行和第 3 行,而不是第 2 行)?

我尝试了类似的事情,并进行了负面展望......
grepl("book(s)?.*?(?!\\bbad\\b)", mydata$text, perl=T, ignore.case=T)

...但这不起作用,因为它也与第二行匹配。我认为这是因为一旦检测到“书”,它就会返回“TRUE”并且不会关心“坏”是否同时出现。

编辑:只是将其添加为条件:我对字符串的具体结构和 book 的位置一无所知。 s 和 bad s,但让我们假设 book(s)首先来。示例: "there are plenty of books, all of which are bad, but some I really like." .

最佳答案

使用负前瞻,我们可以做到

grepl("^(?!.*bad).*books.*$", mydata$text, perl = TRUE)
#[1] TRUE FALSE TRUE

这确保了 bad不存在于 mydata$text在检查 books 之前.

关于r - 使用 grepl 匹配某些词,但仅在其他词不能出现的特定上下文中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57510641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com