- Notifications
You must be signed in to change notification settings - Fork28
Friendly regular expressions for R.
License
r-lib/rex
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Regular expressions are very powerful feature, however they are often difficultto interpret. Rex allows you to build complex regular expressions from humanreadable expressions. So instead of writing (and later trying to decipher)
r<-"^(?:(((?:[^:])+)://))?((?:(?:(?!:/).)*)+)(?:(:([[:digit:]]+)))?(?:(/.*))?$"
You can write
r<- rex(start,## match the protocol -- may exist or may not maybe(capture( capture(except_some_of(":")),"://" )),## match the path capture(one_or_more(not(":/"))),## get the port maybe(capture(":", capture(numbers))),## and the rest maybe(capture("/",anything)),end)
While these expressions are a bit longer than their corresponding regularexpression, they are much more readable and maintainable.
install.packages("rex")The vignettes have longer form usage examples.
Eachrex() function call can include a number of functions and shortcuts.For a full list of the functions available please see?rex and?shortcuts.
Rex functions are not exported because they are only useful withinrex()calls, but they can be temporarily attached usingrex_mode() which allowsthem to be auto-completed.
Usingrex in other packages will generate spurious NOTEs fromR CMD checkunless you include a call torex::register_shortcuts() with your package namesomewhere in your package source. This function registers all of the rexshortcuts as valid variables fixing the NOTEs.
- Regularity - Ruby library thatpartially inspired
rex. - PCRE - Perl Compatible Regular Expressions, theengine that
rexregular expressions use. - Perl 5 Regular Expressions - Perlregular expression documentation, which are nearly 100% compatible with PCRE.
About
Friendly regular expressions for R.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.