“The goal of regexcite is to make regular expressions more exciting! It provides convenience functions to make some common tasks with string manipulation and regular expressions a bit easier.” ^ According to the tutorial I followed on r-pkgs.org anyways. This is mostly an identical reproduction of the code online.
You can install the development version of regexcite from GitHub with:
I personally recommend the official version given in the second line
# install.packages("devtools")
devtools::install_github("JWizards/regexcite")
devtools::install_github("jennybc/regexcite")
A fairly common task when dealing with strings is the need to split a
single string into many parts. This is what base::strplit()
and
stringr::str_split()
do.
(x <- "alfa,bravo,charlie,delta")
#> [1] "alfa,bravo,charlie,delta"
strsplit(x, split = ",")
#> [[1]]
#> [1] "alfa" "bravo" "charlie" "delta"
stringr::str_split(x, pattern = ",")
#> [[1]]
#> [1] "alfa" "bravo" "charlie" "delta"
Notice how the return value is a list of length one, where the first element holds the character vector of parts. Often the shape of this output is inconvenient, i.e. we want the un-listed version.
That’s exactly what regexcite::str_split_one()
does.
library(regexcite)
str_split_one(x, pattern = ",")
#> [1] "alfa" "bravo" "charlie" "delta"
Use str_split_one()
when the input is known to be a single string. For
safety, it will error if its input has length greater than one.
str_split_one()
is built on stringr::str_split()
, so you can use its
n
argument and stringr’s general interface for describing the
pattern
to be matched.
str_split_one(x, pattern = ",", n = 2)
#> [1] "alfa" "bravo,charlie,delta"
y <- "192.168.0.1"
str_split_one(y, pattern = stringr::fixed("."))
#> [1] "192" "168" "0" "1"