DOTALL not working as expected

Stefan Palme kleiner at hora-obscura.de
Thu Jan 18 05:10:08 EST 2007


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