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.