如何在 grepl 函数中对 R 进行 perl 正则表达式匹配?

How to perl regex match in R in the grepl function?

我在 R 中有一个使用 grepl 命令的函数,如下所示:

function(x) grepl('\bx\b',res$label, perl=T)

这似乎不起作用 - 'x' 输入是一个字符类型的字符串(一个句子),我想在匹配时围绕 'x' 创建单词边界,因为我不希望该术语在 table 中提取其他术语,我正在搜索其中包含一些类似的术语。

有什么建议吗?

您只需要正确转义正则表达式中的斜杠

ff<-function(x) grepl('\bx\b',x, perl=T)
ff(c("axa","a x a", "xa", "ax","x"))
# [1] FALSE  TRUE FALSE FALSE  TRUE

如果你只是想知道字符串是否是一个句子,而不是单个单词,你可以使用:function(x) grepl('\s',x)