Wiki

Clone wiki

hachoir / hachoir-regex

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

Updated