RE2 is a software
library for
regular expressions via a
finite-state machine using
automata theory, in contrast to almost all other
regular expression libraries, which use
backtracking implementations. It provides a
C++ interface.
RE2 was implemented and is used by
Google.
Comparison to PCRE
RE2 generally compares to
Perl Compatible Regular Expressions (PCRE) in performance. For certain regular expression operators like
,
(
logical disjunction or
boolean
Any kind of logic, function, expression, or theory based on the work of George Boole is considered Boolean.
Related to this, "Boolean" may refer to:
* Boolean data type, a form of data with only two possible values (usually "true" and "false" ...
"or") it exceeds PCRE. On the other hand, RE2 does not support back-references and cannot implement those efficiently. It is also slightly slower than PCRE for parenthetic capturing operations.
PCRE can use a large
recursive stack
In computer science, a stack is an abstract data type that serves as a collection of elements, with two main operations:
* Push, which adds an element to the collection, and
* Pop, which removes the most recently added element that was not ...
with corresponding high memory use and have
exponential runtime on certain patterns. In contrast, RE2 uses a fixed stack and guarantees that run-time increases
linearly (not exponentially) with the size of the input. The maximum memory allocated with RE2 is configurable.
RE2 has a slightly smaller set of features than PCRE, but has very predictable run-time and a maximum memory allotment. This makes it suitable for use in server applications which require boundaries on memory usage and computational time. PCRE, on the other hand, has almost all of the features that a regular expression library can have, but has unpredictable run-time and memory usage and can grow unbounded.
Use in Google products
RE2 is, for example, used by
Google products like;
Gmail,
Google Documents
Google Docs is an online word processor included as part of the free, web-based Google Docs Editors suite offered by Google, which also includes: Google Sheets, Google Slides, Google Drawings, Google Forms, Google Sites and Google Keep. Google D ...
and
Google Sheets.
See GitHub for a documentation of the syntax
RE2 syntax
In Google Sheets, it is used in the function
RegexMatch()RegexReplace()RegexExtract()and th
find and replace feature RegexExtract(), does not us
grouping
See also
*
Comparison of regular expression engines
References
{{Reflist
Regular expressions
Software using the BSD license