Полное сопоставление слов с помощью grepl в R
рассмотрим следующий пример:
> testLines <- c("I don't want to match this","This is what I want to match")
> grepl('is',testLines)
> [1] TRUE TRUE
> grepl('bisb',testLines,perl=TRUE)
> [1] FALSE FALSE
выход я ищу FALSE TRUE
.
3 ответов
"\ " - это конец. В R строках вам нужно удвоить обратные косые черты, так что:
> grepl("\<is\>", c("this", "who is it?", "is it?", "it is!", "iso"))
[1] FALSE TRUE TRUE TRUE FALSE
обратите внимание, что это соответствует " is!"но не "ИСО".
вам нужно дважды экранировать, чтобы передать escape в regex:
> grepl("\bis\b",testLines)
[1] FALSE TRUE
очень упрощенно, матч на ведущем пространстве:
testLines <- c("I don't want to match this","This is what I want to match")
grepl(' is',testLines)
[1] FALSE TRUE
существует намного больше, чем это для регулярных выражений, но по существу шаблон должен быть более конкретным. Что вам понадобится в более общих случаях-это огромная тема. Видишь ?regex
другие возможности, которые будут работать для этого примера:
grepl(' is ',testLines)
[1] FALSE TRUE
grepl('\sis',testLines)
[1] FALSE TRUE
grepl('\sis\s',testLines)
[1] FALSE TRUE