On 12/01/11 13:19, Yaniga, Frank wrote:
I am determining a regular expression that can recognize the any of
the following strings:
MAT file log\20101225 deleted
MAT file billing\20101225 deleted
MAT file util\20101225 deleted
MAT file carrier\20101225 deleted
I begin by creating a regular expression object so that I can reuse it
in multiple operations:
test = re.compile('MAT file
for log, billing, util, and carrier I use an arbitrary match:
(log|billing|util|carrier)
for 20101225 I use decimal digit with repetition match:
\d{8}
and finish with:
delete')
My question is how do I handle the backslash (NOTE: the match must
only be a backslash)?
Hi Frank,
There are two things you need to know, the first is that \ is a special
character in re's, which I think you probably know already. Also they
are special characters in python strings unless you use raw strings. So
to look for the backslash in your example you need to use a raw string
(technically you could use twice as many backslashes to escape the
python specialness and re but it looks horrible) by starting the string
with r"your regular expression". Then you need to use two backslashes to
give you a backslash character. So your re should now look like this:
test = re.compile(r"MAT file (log|billing|util|carrier)\\\d{8} deleted")
HTH,
Adam.
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor