hachoir-regex is regex manipulation Python library. It's used by hachoir-subfile for fast pattern matching (find file header).
Examples
Regex creation
>>> from hachoir_core.regex import parse, createString >>> createString("bike") | createString("motor") <RegexOr '(bike|motor)'> >>> createString("big ") + createString("bike") <RegexString 'big bike'> >>> r=parse('(cat|horse)') >>> r.minLength(), r.maxLength() (3, 5)
Optimizations
>>> from hachoir_core.regex import parse, createString >>> parse("(ma|mb|mc)") <RegexAnd 'm[a-c]'> >>> createString("moto") | parse("mot.") <RegexAnd 'mot.'>
Pattern matching
from hachoir_core.regex import PatternMatching p = PatternMatching() p.addString("un", 1) p.addString("deux", 2) p.addRegex("(trois|three)", 3) for start, end, item in p.search("un deux trois"): print "%r at %s: user=%r" % (item, start, item.user)
find
<StringPattern 'un'> at 0: user=1 <StringPattern 'deux'> at 3: user=2 <RegexPattern 't(rois|hree)'> at 8: user=3
Download
See also
- CPAN Regexp::Assemble (Perl module)
- CPAN Regexp::Optimizer (Perl moduel)
- Kodos: The Python Regular Expression Debugger
- Kiki (website seems to be down, try swik.net or debian.org): tool for python regular expression testing