• Stars
    star
    476
  • Rank 92,280 (Top 2 %)
  • Language
    R
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔍 An RStudio addin slash regex utility belt

RegExplain

Regular expressions are tricky. RegExplain makes it easier to see what you’re doing.

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CRAN_Status_Badge

RegExplain is an RStudio addin slash utility belt for regular expressions. Interactively build your regexp, check the output of common string matching functions, consult the interactive help pages, or use the included resources to learn regular expressions. And more.

Inspired by RegExr.com and stringr::str_view().

Installation

Installation is easy with remotes

# install.packages("remotes")
remotes::install_github("gadenbuie/regexplain")

RegExplain in Action

Overview

regexplain selection

Regular Expressions Library

regexplain library

Try the Built-In Examples

regexplain examples

RStudio Addin

The main feature of this package is the RStudio Addin RegExplain Selection. Just select the text or object containing text (such as the variable name of a vector or a data.frame column) and run RegExplain Selection from the RStudio Addins dropdown.

regexplain in the Rstudio Addins dropdown

You can also open the addin with regexplain_gadget(). This allows you to pass text or a regular expression to the gadget, which is useful when you want to work with a regular expression in your code or environment.

regexplain_gadget(text_vector, "\\b(red|blue|green): \\d{3}")

The addin will open an interface with 4 panes where you can

  • edit the text you’ve imported
  • build up a regex expression and interactively see it applied to your text
  • test the output of common string matching and replacement functions from base and stringr
  • and refer to a helpful cheatsheet

The panes of regexplain

When you’re done, click on the Send Regex to Console to send your regex expression to… the console!

> pattern <- "\\b(red|orange|yellow|green|blue|purple|white|brown)(?:\\s(\\w+))?"

Notice that RegExplain handled the extra backslashes needed for storing the RegEx characters \b, \s, and \w. Inside the gadget you can use regular old regular expressions as you found them in the wild (hello, Stack Overflow!).

Help and Cheat Sheet

The Help tab is full of resources, guides, and R packages and includes an easy-to-navigate reference of commonly used regular expression syntax.

regexplain help windows

Open RegExplain Cheatsheet from the RStudio Addins drop down to open the regex reference page in the Viewer pane without blocking your current R session.

Import Your Text

There are two ways to get your text into RegExplain. The first way was described above: select an object name or lines of text or code in the RStudio source pane and run RegExplain Selection. To import text from a file, use RegExplain File to you import the text you want to process with regular expressions.

When importing text, RegExplain automatically reduces the text to the unique entries and limits the number of lines.

regexplain addins

Regular Expressions Library

The RegExplain gadget includes a regular expressions library in the RegEx tab. The library features common regular expressions, sourced from qdapRegex and Regex Hub, with several additional patterns.

The full library is stored as a JSON file in inst/extdata/patterns.json, feel free to contribute patterns you find useful or use regularly via pull request.

regexplain library modal

View Static Regex Results

RegExplain provides the function view_regex() that you can use as a stringr::str_view() replacement. In addition to highlighting matched portions of the text, view_regex() colorizes groups and attempts to colorize the regex expression itself as well.

text <- c("breakfast=eggs;lunch=pizza",
          "breakfast=bacon;lunch=spaghetti", 
          "no food here")
pattern <- "((\\w+)=)(\\w+).+(ch=s?p)"

view_regex(text, pattern)

Example view_regex(text, pattern).

t_nested <- "anestedgroupwithingroupexample"
r_nested <- "(a(nested)(group(within(group))(example)))"
view_regex(t_nested, r_nested)

Example of nested groups

Notes

Regular expressions are nothing if not a collection of corner cases. Trying to pass regular expressions through Shiny and HTML inputs is a bit of a labyrinth. For now, assume any issues or oddities you experience with this addin are entirely my fault and have nothing to do with the fine packages this addin is built on. If you do find an issue, please file an issue. Pull requests are welcomed!

More Repositories

1

tidyexplain

🤹‍♀ Animations of tidyverse verbs using R, the tidyverse, and gganimate
R
758
star
2

rsthemes

🔮 Full RStudio IDE and Syntax Themes
SCSS
504
star
3

xaringanthemer

😎 Give your xaringan slides some style
R
437
star
4

xaringanExtra

🎡 A playground of enhancements and extensions for xaringan slides.
JavaScript
433
star
5

ggpomological

🍑 Pomological plot theme for ggplot2
R
325
star
6

countdown

⏲ countdown timer for R Markdown slides and HTML docs
JavaScript
148
star
7

epoxy

Extra-strength glue engines for R Markdown and Quarto
R
146
star
8

cleanrmd

📄✨Clean Class-Less R Markdown HTML Documents
CSS
128
star
9

tweet-conf-dash

A shiny twitter conference dashboard
CSS
121
star
10

shrtcts

Make Anything an RStudio Shortcut
R
103
star
11

ggweekly

🗓 🖨 Easy, printable, custom calendars and week planners
R
101
star
12

tweetrmd

Embed Tweets in R Markdown
R
101
star
13

gentle-ggplot2

📊 A Gentle Guide to the Grammar of Graphics with ggplot2
HTML
83
star
14

grkstyle

A Tidy R Code Style
R
81
star
15

metathis

ℹ️ <meta> tags and social media cards for R-made web things
R
62
star
16

js4shiny

Companion Package for JavaScript for Shiny Users
R
53
star
17

mueller-report

The ██redacted Mueller Report
R
47
star
18

shinyComponents

📝✨ Shiny Components in R Markdown
R
44
star
19

trump-tweet-time

🎮 An 8-bit Trump tweet guessing game for your "executive time"
R
36
star
20

starwarsdb

Relational Data from the Star Wars API for Learning and Teaching
R
35
star
21

covid19-florida

Florida COVID19 Data parsed from Florida DOH Dashboard and PDF reports
HTML
32
star
22

rsconf_tweets

rstudio::conf 2018 tweet explorer and FOMO reducer
R
30
star
23

status

HTML
29
star
24

ermoji

🤷‍♂️ RStudio Addin to Search and Copy Emoji
R
26
star
25

lorem

Generate Lorem Ipsum Text
R
26
star
26

shinyThings

Reusable Shiny Modules and Other Shiny Things
R
25
star
27

trug-ggplot2

📊 Slides for presentation on ggplot2 at Tampa R Users Meetup (Jan 2018)
R
23
star
28

yule-rstudio

⛄️🎄🖥 A Holiday Theme for RStudio
22
star
29

snippets

My snippets for RStudio (or elsewhere)
Vim Snippet
21
star
30

slides

HTML
20
star
31

tiktokrmd

Embed TikTok Videos in R Markdown
R
18
star
32

xaringan-logo

xaringan template with logo on all slides
HTML
17
star
33

tweets-of-the-year

R
16
star
34

xaringan2powerpoint

a snarky powerpoint from xaringan demo
HTML
16
star
35

drake-intro

Reproducible Data Workflows with Drake
R
14
star
36

getcitations

R script to extract pandoc citations from markdown text and create local .bib file from a master BibTeX library.
R
14
star
37

applause

👏 Zero-Configuration Applause/Claps/Kudos Button for R Markdown and Shiny apps
R
14
star
38

tidyjs-r

Tidy Data with JavaScript and tidy.js
R
14
star
39

sprinkles

Utility CSS and JavaScript for R Markdown
JavaScript
14
star
40

rstudio-global-2021-calendar

Build your talk calendar for rstudio::global(2021)
R
13
star
41

garrickadenbuie-com

My personal website
HTML
13
star
42

intro-to-git-for-scientists

Intro to git for scientists and other regular people
TeX
12
star
43

de-iris-my-repos

It's time to move on from iris
R
12
star
44

repromonkey

🐒 A Reproducibility Chaos Monkey
R
12
star
45

oceanic-eighties

👨‍🎤 Oceanic Eighties Theme for RStudio
11
star
46

js4shiny-frappeCharts

Building an HTML Widget, a demonstration
HTML
11
star
47

synamyn

Synonyms! An RStudio addin interface for ropenscilabs/syn
R
10
star
48

gathertweet

Commandline utility for quick {rtweet} tweet gathering
R
9
star
49

r-colors-css

A utility CSS stylesheet with R's color names
HTML
8
star
50

rsprefs

Manage and Sync Your RStudio Preferences
R
8
star
51

js4shiny-drumkit

HTML
8
star
52

branchMover

An RStudio Addin to Help Move the Default Branch of Your GitHub Repos
R
8
star
53

rstudio-ide-tips-demo

Companion to rstudio-ide-tips
R
7
star
54

gadenbuie

7
star
55

mctestanalysis

📚 Apps and reports for multiple-choice test analysis in R with Shiny
R
6
star
56

rstudio-ide-tips

Slides for RStudio IDE Tips
JavaScript
6
star
57

rstudioAddinFriend

RStudio addin to help you build RStudio addins
R
5
star
58

drake-rstudio-jobs-example

R
5
star
59

extra-awesome-xaringan

R
4
star
60

pagedown-cheatsheet

JavaScript
4
star
61

docker-rstudio-keras

🐳 RStudio + tidyverse + keras (cpu)
Dockerfile
4
star
62

positron-plus-1-e

A Positron extension pack for dev and data science.
4
star
63

rstatsnyc-2018-tweets

Tweets from #rstatsnyc -- remix of rsconf tweet shiny app
R
3
star
64

ten-thousand-functions

Ten Thousand Reasons to Love Functions
CSS
3
star
65

msglooker

A Shiny App to View And Export Outlook Messages
R
3
star
66

crantrack

Hourly snapshots of CRAN's incoming packages folder
R
3
star
67

fwiffer

📏✨ Fixed width file definitions made easy
R
3
star
68

xaringan-club

A place to talk about xaringan
HTML
3
star
69

js4shiny-workshop-webpage

HTML
3
star
70

rstudioconf-notes

HTML
2
star
71

rocker-verse-metaflow

rocker/verse + {metaflow}
Dockerfile
2
star
72

nonlinear-opt-notes

Class notes for Nonlinear Optimization and Game Theory at USF, Spring 2016
2
star
73

rstats-tweets

R
2
star
74

alix

Warn About Accessibility Issues in HTML Documents and Apps
R
2
star
75

quarto-partials

Partial content templates for Quarto
Lua
1
star
76

resume

HTML
1
star
77

podcasts

R-based podcast catcher
R
1
star
78

ms-render-ui-delay

R
1
star
79

aws-p2-setup

My AWS EC2 p2 instance setup with nvidia-docker
Shell
1
star
80

usf-boot-camp-R

Slides and materials for R sessions at USF Code & Data Boot Camp 2014
R
1
star
81

xaringan-line-focus

HTML
1
star
82

rmedicine-2024-bslib

Next Generation Shiny Apps with bslib
R
1
star
83

revealjs-text-resizer

Resize text on quarto slides
HTML
1
star
84

quarto-reprex-listing-chomp

EJS
1
star
85

docker-shinycannon

Dockerfile
1
star
86

speedDate

Quick Date Format Strings for strftime
R
1
star
87

quarto-tachyons

Tachyons Utility CSS for Quarto
CSS
1
star