RE2/J is a high-performance regular expression engine implemented in pure Java as a port of Google’s C++ RE2 library. Unlike traditional regex engines such as Java’s java.util.regex, PCRE, or Perl’s implementation—which rely on backtracking and can suffer from catastrophic exponential runtimes—RE2/J guarantees linear-time matching relative to input size. It achieves this efficiency by simulating all possible matches in a single pass using a nondeterministic finite automaton (NFA), ensuring predictable and safe performance even with complex patterns. This makes RE2/J ideal for applications that must handle user-supplied regular expressions securely without the risk of denial-of-service through regex backtracking. While it omits some advanced features like backreferences and certain Java regex options, it supports the vast majority of practical expressions used in production code. RE2/J thus provides a reliable, safe, and scalable alternative for developers.
Features
- Linear-time regular expression matching regardless of input size
- Implemented entirely in Java as a port of Google’s C++ RE2 engine
- Immune to catastrophic backtracking and stack overflows
- Compatible with most Java regular expression syntax and behavior
- Designed for safety when handling untrusted regex patterns
- Easily integrated via Maven or direct JAR inclusion in Java projects