The goal of RVerbalExpressions
is to make it easier to construct regular expressions. Grammar and functionality inspired by VerbalExpressions, this is essentially another port using the R programming language. Usage of %>%
is encouraged to build expressions in a chain like fashion.
There are a couple of functions missing from the original JSVerbalExpressions:
replace
isn’t included because there are numerous R functions for this, gsub
being one exampleadd
is a utility function for appending expressions to one another and isn’t included because we use %>%
for thatOthers just haven’t made it yet, see here.
You can install RVerbalExpressions
from GitHub with:
# install.packages("devtools")
devtools::install_github("tyluRp/RVerbalExpressions")
This is a basic example which shows you how to build a regular expression:
library(RVerbalExpressions)
# construct an expression
x <- start_of_line() %>%
then('http') %>%
maybe('s') %>%
then('://') %>%
maybe('www.') %>%
anything_but(' ') %>%
end_of_line()
x
#> [1] "^(?:http)(?:s)?(?:\\://)(?:www\\.)?(?:[^ ]*)$"
grepl(x, "https://www.google.com")
#> [1] TRUE
You can see an up to date list of all ports on VerbalExpressions.github.io.
Additionally, there is another R package rex by @kevinushey that tries to solve the same problem. I encourage you to check it out!
If you find any issues, please file an issue or submit a PR. All contributions are welcome! See the list of todo items here if you’re looking for something to specific to work on.