19 lines
901 B
Plaintext
19 lines
901 B
Plaintext
RE2 is a fast, safe, thread-friendly alternative to backtracking
|
|
regular expression engines like those used in PCRE, Perl, and
|
|
Python. It is a C++ library.
|
|
|
|
Backtracking engines are typically full of features and
|
|
convenient syntactic sugar but can be forced into taking
|
|
exponential amounts of time on even small inputs. RE2 uses
|
|
automata theory to guarantee that regular expression searches
|
|
run in time linear in the size of the input. RE2 implements
|
|
memory limits, so that searches can be constrained to a fixed
|
|
amount of memory. RE2 is engineered to use a small fixed C++
|
|
stack footprint no matter what inputs or regular expressions it
|
|
must process; thus RE2 is useful in multithreaded environments
|
|
where thread stacks cannot grow arbitrarily large.
|
|
|
|
On large inputs, RE2 is often much faster than backtracking
|
|
engines; its use of automata theory lets it apply optimizations
|
|
that the others cannot.
|