knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(strex)
strex
offers easy and/or versions of stringr::str_detect()
via str_detect_all()
and str_detect_any()
. These are vectorized over string
but not pattern
. stringr::fixed()
and stringr::coll())
are handled correctly. Otherwise, stringr
regular expressions are used. For str_detect_all()
, a pattern argument c("x", "y")
is converted to "(?=.*x)(?=.*y)"
. For str_detect_any()
, a pattern argument c("x", "y")
is converted to "x|y"
.
str_detect_all("quick brown fox", c("x", "y", "z")) str_detect_all(c(".", "-"), ".") str_detect_all(c(".", "-"), coll(".")) str_detect_all(c(".", "-"), coll("."), negate = TRUE) str_detect_all(c(".", "-"), c(".", ":")) str_detect_all(c(".", "-"), coll(c(".", ":"))) str_detect_all("xyzabc", c("a", "c", "z")) str_detect_all(c("xyzabc", "abcxyz"), c(".b", "^x")) str_detect_any("quick brown fox", c("x", "y", "z")) str_detect_any(c(".", "-"), ".") str_detect_any(c(".", "-"), coll(".")) str_detect_any(c(".", "-"), coll("."), negate = TRUE) str_detect_any(c(".", "-"), c(".", ":")) str_detect_any(c(".", "-"), coll(c(".", ":"))) str_detect_any(c("xyzabc", "abcxyz"), c(".b", "^x"))
Unless you're doing a huge amount of computation, it won't matter, but FWIW, it's faster to convert to regex using str_escape()
rather than using coll()
.
bench::mark( str_detect_all(rep("*", 1000), rep(str_escape("*"), 555)), str_detect_all(rep("*", 1000), coll(rep("*", 555))), min_iterations = 100 )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.