[Python-Dev] Finding overlapping matches with re assertions: bug or feature? (original) (raw)

Paul Moore p.f.moore at gmail.com
Fri Nov 15 10:47:56 CET 2013


On 15 November 2013 06:48, Tim Peters <tim.peters at gmail.com> wrote:

Is that a feature? Or an accident? It's very surprising to find a non-empty match inside an empty match (the outermost lookahead assertion).

Personally, I would read (?=(R))" as finding an empty match at a point where R starts. There's no implication that R is in any sense "inside" the match.

(?=(<\w\w\w\w\w\w)\w\w\w) finds the first 3 characters of words that are 6 or more characters long. Once again, the lookahead extends beyond the extent of the main match.

It's obscure and a little bizarre, but I'd say its intended and a logical consequence of the definitions.

Paul



More information about the Python-Dev mailing list