regular expresions and dolar sign ($) in source string

Jax 77jacek at wp.pl
Thu Apr 23 08:07:17 CEST 2009


Hi

I encountered problem with dolar sign in source string. It seems that $ require
special threatening. Below is copy of session with interactive Python's shell:

Python 2.5.2 (r252:60911, Jan  8 2009, 12:17:37)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> a = unicode(r"(instead of $399.99)", "utf8")
>>> print re.search(unicode(r"^\(instead of.*(\d+[.]\d+)\)$", "utf8"),
a).group(1)
9.99
>>> print re.search(unicode(r"^\(.*(\d+[.]\d+)\)$", "utf8"), a).group(1)
9.99
>>> print re.search(unicode(r"^\(.*\$(\d+[.]\d+)\)$", "utf8"), a).group(1)
399.99

My question is: Why only third regular expression is correct?

Please help! It boggles my mind.

Jax



More information about the Python-list mailing list