How to get the "longest possible" match with Python's RE module?

Licheng Fang fanglicheng at gmail.com
Mon Sep 11 23:04:58 EDT 2006


Basically, the problem is this:

>>> p = re.compile("do|dolittle")
>>> p.match("dolittle").group()
'do'

Python's NFA regexp engine trys only the first option, and happily
rests on that. There's another example:

>>> p = re.compile("one(self)?(selfsufficient)?")
>>> p.match("oneselfsufficient").group()
'oneself'

The Python regular expression engine doesn't exaust all the
possibilities, but in my application I hope to get the longest possible
match, starting from a given point.

Is there a way to do this in Python?




More information about the Python-list mailing list