RegEx issues

Roy Smith roy at panix.com
Sat Jan 24 19:55:48 CET 2009


Sean Brown <sbrown.home@[spammy]gmail.com> wrote:

> The problem is it appears that python is escaping the \ in the regex
> because I see this:
> >>>reg = '\[\[(.*)\]\];'

The first trick of working with regexes in Python is to *always* use raw 
strings.  Instead of

reg = '\[\[(.*)\]\];'

you want

reg = r'\[\[(.*)\]\];'

In this case, I think it ends up not mattering, but it's one less thing to 
worry about.  Next, when looking at something like

> >>> reg
> '\\[\\[(.*)\\]\\];'

it's hard to see exactly what all the backslashes mean.  Which are real and 
which are escapes?  Try doing

>>> print reg
\[\[(.*)\]\];

which gets you the str(reg) instead of repr(reg).  Another trick when 
you're not 100% what you're looking at is to explode the string like this:

>>> [c for c in reg]
['\\', '[', '\\', '[', '(', '.', '*', ')', '\\', ']', '\\', ']', ';']



More information about the Python-list mailing list