Форум сайта python.su
0
Ubuntu 14.04.3 LTS
Python 2.7.6
в текстовом файле лежат паттерны для регэксп-замен, одна строка - один паттерн
делаю
s_txt_regexp=f_txtFile_regexp.read() a_txt_regexp=s_txt_regexp.splitlines()
for k in range(0,len(a_txt_regexp)): a_txt_regexp[k]=a_txt_regexp[k].replace(r"\\",r"\")
Офлайн
16
Обратный слеш в строках используется для так называемой escape-последовательности.
Например - ‘\n’ – это новая строка, ‘\t’ – это табуляция.
Вот и ошибка в этом. Двойной слеш как раз и нужен, чтобы вывести просто 1 слеш на экран.
>>> one = '\' SyntaxError: EOL while scanning string literal >>> one = '\\' >>> one '\\' >>> print(one) \ >>>
Офлайн
7
MinasFilmСтрока, даже если она с префиксом r“…” не должна заканчиваться на нечетное количество обратных слешей.
получаю ошибку
SyntaxError: EOL while scanning string literal
string = string.replace('\\', '')
Отредактировано Isem (Авг. 19, 2015 03:26:52)
Офлайн
0
да я уже понял где собака порылась кажется - дебаггер экранирует просто слэши при выводе на экран, а на самом деле в переменных из текста там все в порядке 
Офлайн
857
MinasFilmВообще-то, не дебаггер, а repr().
дебаггер экранирует просто слэши при выводе на экран
Офлайн