Vectorised over string and pattern. Equivalent to grepl(pattern, x). See str_which() for an equivalent to grep(pattern, x).

str_detect(string, pattern, negate = FALSE)

Arguments

string

Input vector. Either a character vector, or something coercible to one.

pattern

Pattern to look for.

The default interpretation is a regular expression, as described in stringi::about_search_regex. Control options with regex().

Match a fixed string (i.e. by comparing only bytes), using fixed(). This is fast, but approximate. Generally, for matching human text, you'll want coll() which respects character matching rules for the specified locale.

Match character, word, line and sentence boundaries with boundary(). An empty pattern, "", is equivalent to boundary("character").

negate

If TRUE, return non-matching elements.

Value

A logical vector.

See also

stringi::stri_detect() which this function wraps, str_subset() for a convenient wrapper around x[str_detect(x, pattern)]

Examples

fruit <- c("apple", "banana", "pear", "pineapple") str_detect(fruit, "a")
#> [1] TRUE TRUE TRUE TRUE
str_detect(fruit, "^a")
#> [1] TRUE FALSE FALSE FALSE
str_detect(fruit, "a$")
#> [1] FALSE TRUE FALSE FALSE
str_detect(fruit, "b")
#> [1] FALSE TRUE FALSE FALSE
str_detect(fruit, "[aeiou]")
#> [1] TRUE TRUE TRUE TRUE
# Also vectorised over pattern str_detect("aecfg", letters)
#> [1] TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE #> [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE #> [25] FALSE FALSE
# Returns TRUE if the pattern do NOT match str_detect(fruit, "^p", negate = TRUE)
#> [1] TRUE TRUE FALSE FALSE