0

下面是一个最小的可重现示例:

v=c("\\<skill-saw\\>","\\<saw blade\\>")
text="xx placed his hand beneath skill-saw blade"
sapply(v,grepl,text)

最后一个命令返回 c(TRUE,TRUE),我期望 c(TRUE,FALSE)。关于如何实现这一目标的任何想法?这个想法是应该检测到文本中存在关键字“skill-saw”,而不是关键字“saw Blade”......

非常感谢您的帮助!

4

1 回答 1

1

你可以试试看regex后面

v <- c('(?<= )\\bskill-saw\\b', '(?<= )\\bsaw blade\\b')
 unname(sapply(v, grepl, text, perl=TRUE))
 #[1]  TRUE FALSE

更新

基于新的“文本”,可能是

text1 <- "xx placed his hand beneath skill saw-blade"

v <- c('(?<= )\\bskill-saw\\b', '(?<= )\\bsaw-?blade\\b')
unname(sapply(v, grepl, text1, perl=TRUE))
#[1] FALSE  TRUE
于 2015-01-29T14:59:44.753 回答