Интерактивно ли вы используете python?
В обычной строке вам необходимо избежать обратной косой черты в вашем коде или использовать r "..." (ссылка на docs ). Если вы используете Python интерактивно и не присваиваете результаты из вашей базы данных переменной, он будет распечатан с использованием метода __repr__()
.
>>> s = "\\1abc"
>>> s
'\\1abc' # <-- How it's represented in Python code
>>> print s
\1abc # <-- The actual string
Кроме того, ваш re.sub немного странный. 1) Может быть, вы имели в виду [0-9] как образец? (Соответствует одной цифре). Аргументы, вероятно, тоже переключаются, если thereplacement
является вашим вводом. Это синтаксис:
re.sub(pattern, repl, string, count=0)
Так что я думаю, вы ожидаете что-то вроде этого:
>>> s_in = yourDbMagic() # Which returns \1abc
>>> s_out = re.sub("[0-9]", "2", s_in)
>>> print s_in, s_out
\1abc \2abc
Редактировать: Пытался лучше объяснить побег / представление.