DOTALL not working as expected
Stefan Palme
kleiner at hora-obscura.de
Thu Jan 18 05:19:36 EST 2007
Just noticed, that it works when *compiling* the pattern:
import re
p = re.compile('X.*?Y', re.DOTALL)
print re.sub(p, 'Z', 'Xab\ncdY')
Still the question - my fault or a bug?
Best regards
-stefan-
On Thu, 18 Jan 2007 11:10:08 +0100, Stefan Palme wrote:
>
> Hi all,
>
> using the "re" module of Python (2.3 and 2.4), I tried the following:
>
> import re
> print re.sub('X.*?Y', 'Z', 'Xab\ncdY', re.DOTALL)
>
> I wanted to replace
> Xab
> cdY
> by a single "Z", but the "." in the pattern does not match the
> included "\n".
>
> When using the pattern "X(.|\n)*?Y" (explicity including "\n"
> in the set of "any character") I get the wanted result.
>
> My fault or a bug in the module?
>
> Thanks
> -stefan-
More information about the Python-list
mailing list