Skip to content

Latest commit

 

History

History
94 lines (70 loc) · 2.66 KB

README.md

File metadata and controls

94 lines (70 loc) · 2.66 KB

regexcite

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.

Installation

You can install the development version of regexcite from GitHub with:

# install.packages("devtools")
devtools::install_github("patrickgtwalker/regexcite")

Usage

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"

What is special about using README.Rmd instead of just README.md? You can include R chunks like so:

summary(cars)
#>      speed           dist       
#>  Min.   : 4.0   Min.   :  2.00  
#>  1st Qu.:12.0   1st Qu.: 26.00  
#>  Median :15.0   Median : 36.00  
#>  Mean   :15.4   Mean   : 42.98  
#>  3rd Qu.:19.0   3rd Qu.: 56.00  
#>  Max.   :25.0   Max.   :120.00

You’ll still need to render README.Rmd regularly, to keep README.md up-to-date. devtools::build_readme() is handy for this. You could also use GitHub Actions to re-render README.Rmd every time you push. An example workflow can be found here: https://github.com/r-lib/actions/tree/v1/examples.

You can also embed plots, for example:

In that case, don’t forget to commit and push the resulting figure files, so they display on GitHub and CRAN.