Regular expressions (aka. regex) are character sequences that define a pattern. In theoretical computer science and formal language theory, such patterns are used for validating text inputs and for searching, finding and replacing strings of text.
Many R commands involving character data (e.g., the base R functions
strsplit(), and most of the stringr functions discussed in Chapter 9 on Strings of text) support the use of regular expressions.
While regular expressions can be immensely powerful and time-saving tools, their abstract nature and formal appearance often seem scary and intimidating. For instance, given a vector
dinos that contains the 10 character strings
two moderately cryptic
would each find the following results:
Many text-related tasks that programmers address by using iterative or recursive functions can be tackled by regular expressions as well. While regular expressions are often shorter and faster than self-made alternatives, they can be cryptic and difficult to understand. Although there’s probably a regular expression for solving almost any text-related task, we should always aim for a good balance between functionality and transparency. To provide a glimpse into the potential of regular expressions without requiring too much formal overhead, this appendix provides a gentle introduction into using regular expressions in R.