str_contains {sjmisc} | R Documentation |
Check if string contains pattern
Description
This functions checks whether a string or character vector
x
contains the string pattern
. By default,
this function is case sensitive.
Usage
str_contains(x, pattern, ignore.case = FALSE, logic = NULL, switch = FALSE)
Arguments
x |
Character string where matches are sought. May also be a character vector of length > 1 (see 'Examples'). |
pattern |
Character string to be matched in |
ignore.case |
Logical, whether matching should be case sensitive or not. |
logic |
Indicates whether a logical combination of multiple search pattern should be made.
|
switch |
Logical, if |
Details
This function iterates all elements in pattern
and
looks for each of these elements if it is found in
any element of x
, i.e. which elements
of pattern
are found in the vector x
.
Technically, it iterates pattern
and calls
grep(x, pattern[i], fixed = TRUE)
for each element
of pattern
. If switch = TRUE
, it iterates
pattern
and calls grep(pattern[i], x, fixed = TRUE)
for each element of pattern
. Hence, in the latter case
(if switch = TRUE
), x
must be of length 1.
Value
TRUE
if x
contains pattern
.
Examples
str_contains("hello", "hel")
str_contains("hello", "hal")
str_contains("hello", "Hel")
str_contains("hello", "Hel", ignore.case = TRUE)
# which patterns are in "abc"?
str_contains("abc", c("a", "b", "e"))
# is pattern in any element of 'x'?
str_contains(c("def", "abc", "xyz"), "abc")
# is "abcde" in any element of 'x'?
str_contains(c("def", "abc", "xyz"), "abcde") # no...
# is "abc" in any of pattern?
str_contains("abc", c("defg", "abcde", "xyz12"), switch = TRUE)
str_contains(c("def", "abcde", "xyz"), c("abc", "123"))
# any pattern in "abc"?
str_contains("abc", c("a", "b", "e"), logic = "or")
# all patterns in "abc"?
str_contains("abc", c("a", "b", "e"), logic = "and")
str_contains("abc", c("a", "b"), logic = "and")
# no patterns in "abc"?
str_contains("abc", c("a", "b", "e"), logic = "not")
str_contains("abc", c("d", "e", "f"), logic = "not")