Полное сопоставление слов с помощью 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