The goal of LearnRpkgs is to allow Helen to learn how to build an r pkg, it also provides fns to make regex less awful
You can install the development version of LearnRpkgs like so:
# install.packages("devtools")
devtools::install_github("hmetcalfe1/LearnRpkgs")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(LearnRpkgs)
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"