andrew cooke <and...@acooke.org> wrote: > Please can someone explain why the following fails: > > from re import compile > > p = compile(r'\bword\b') > m = p.match(' word ') > assert m > > My understanding is that \b matches a space at the start or end of a > word, and that "word" is a word - http://docs.python.org/library/re.html > > What am I missing here? I suspect I am doing something very stupid. >
You misunderstand what \b does: it doesn't match a space, it matches a 0 length string on a boundary between a non-word and a word. Try: p.match(' word ', 1).group(0) and you'll see that you are only match the word, not the surrounding puctuation. -- http://mail.python.org/mailman/listinfo/python-list