coll()
для «поиска сличений».Вот точный пример из vignette("stringr")
coll(x)
ищет совпадение с x, используя правила сортировки на человеческом языке, и это особенно важно, если вы хотите выполнять сопоставление без учета регистра.Правила сортировки различаются по всему миру, поэтому вам также потребуется указать параметр локали.
i <- c("I", "İ", "i", "ı")
i
#> [1] "I" "İ" "i" "ı"
str_subset(i, coll("i", ignore_case = TRUE))
#> [1] "I" "i"
str_subset(i, coll("i", ignore_case = TRUE, locale = "tr"))
#> [1] "İ" "i"
Недостатком coll()
является скорость.Поскольку правила распознавания, какие символы являются одинаковыми, сложны, coll()
относительно медленный по сравнению с regex()
и fixed()
.Обратите внимание, что когда fixed()
и regex()
имеют ignore_case arguments
, они выполняют намного более простое сравнение, чем coll()
Так что в основном coll()
использует информацию из данной локали, чтобы узнать, чтосимволы в основном означают одно и то же и позволяют им соответствовать друг другу, даже если технически это разные символы.