anatoly techtonik added the comment:

Matthew, finally the right answer. Thanks!


Looking further, there is a bug in processing backslashes in raw literal 
replacement strings. re.sub ignores raw strings as replacements. This can be 
even more confusing for people who look for more advanced equivalent for string 
replace().


  patt = "aaa"
  repl = r"zed \0 org"

  print(" aaa ".replace(patt, repl))

  import re
  print(re.sub(patt, repl, " aaa "))

This gives:

 zed \0 org
 zed   org

With `repl = "zed \0 org"`, the output matches:

  zed   org
  zed   org

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17426>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to