pyre2 is a Python extension that wraps Google's RE2 regular expression library. It implements many of the features of Python's built-in re
module with compatible interfaces.
Regexp
objects have afullmatch
method that works likematch
, but anchors the match at both the start and the end.Regexp
objects havetest_search
,test_match
, andtest_fullmatch
methods that work likesearch
,match
, andfullmatch
, but only returnTrue
orFalse
to indicate whether the match was successful. These methods should be faster than the full versions, especially for patterns with capturing groups.
- No substitution methods.
- No flags.
- No
split
,findall
, orfinditer
. - No top-level convenience functions like
search
andmatch
. (Just use compile.) - No compile cache. (If you care enough about performance to use RE2, you probably care enough to cache your own patterns.)
- No
lastindex
orlastgroup
onMatch
objects.
pyre2 has only received basic testing, and I am by no means a Python extension expert, so it is quite possible that it contains bugs. I'd guess the most likely are reference leaks in error cases.
RE2 doesn't build with fPIC, so I had to build it with
make CFLAGS='-fPIC -c -Wall -Wno-sign-compare -O3 -g -I.'
I also had to add it to my compiler search path when building the module with a command like
env CPPFLAGS='-I/path/to/re2' LDFLAGS='-L/path/to/re2/obj' ./setup.py build
You can file bug reports on GitHub, or email the author: David Reiss <dreiss@facebook.com>.