Complete word matching using grepl in R

我只是一个虾纸丫 提交于 2019-11-27 01:57:59

"\<" is another escape sequence for the beginning of a word, and "\>" is the end. In R strings you need to double the backslashes, so:

> grepl("\\<is\\>", c("this", "who is it?", "is it?", "it is!", "iso"))
[1] FALSE  TRUE  TRUE  TRUE FALSE

Note that this matches "is!" but not "iso".

you need double-escaping to pass escape to regex:

> grepl("\\bis\\b",testLines)
[1] FALSE  TRUE

Very simplistically, match on a leading space:

testLines <- c("I don't want to match this","This is what I want to match")
grepl(' is',testLines)
[1] FALSE  TRUE

There's a whole lot more than this to regular expressions, but essentially the pattern needs to be more specific. What you will need in more general cases is a huge topic. See ?regex

Other possibilities that will work for this example:

grepl(' is ',testLines)
[1] FALSE  TRUE
grepl('\\sis',testLines)
[1] FALSE  TRUE
grepl('\\sis\\s',testLines)
[1] FALSE  TRUE
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!