[issue17426] \0 in re.sub substitutes to space
anatoly techtonik
report at bugs.python.org
Fri Mar 15 17:28:41 CET 2013
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 <report at bugs.python.org>
<http://bugs.python.org/issue17426>
_______________________________________
More information about the Python-bugs-list
mailing list