Skip to content

This uses Unicode canonicalisation rules, and optionally ignores case.

Usage

str_equal(x, y, locale = "en", ignore_case = FALSE, ...)

Arguments

x, y

A pair of character vectors.

locale

Locale to use for comparisons. See stringi::stri_locale_list() for all possible options. Defaults to "en" (English) to ensure that default behaviour is consistent across platforms.

ignore_case

Ignore case when comparing strings?

...

Other options used to control collation. Passed on to stringi::stri_opts_collator().

Value

An logical vector the same length as x/y.

See also

stringi::stri_cmp_equiv() for the underlying implementation.

Examples

# These two strings encode "a" with an accent in two different ways
a1 <- "\u00e1"
a2 <- "a\u0301"
c(a1, a2)
#> [1] "á" "á"

a1 == a2
#> [1] FALSE
str_equal(a1, a2)
#> [1] TRUE

# ohm and omega use different code points but should always be treated
# as equal
ohm <- "\u2126"
omega <- "\u03A9"
c(ohm, omega)
#> [1] "Ω" "Ω"

ohm == omega
#> [1] FALSE
str_equal(ohm, omega)
#> [1] TRUE