Мне нужно заменить \
на \\
с помощью python из соответствия шаблону. Например, $$\a\b\c$$
должен быть заменен на $$\\a\\b\\c$$
.Заменить одиночную обратную косую черту на двойную обратную косую черту с помощью Python
Я не мог использовать регулярное выражение, чтобы найти совпадение.
>>> import re
>>> p = re.compile("\$\$([^$]+)\$\$")
>>> a = "$$\a\b\c$$"
>>> m = p.search(a)
>>> m.group(1)
'\x07\x08\\c'
Я не могу просто сделать вход в качестве исходной строки, таких как a=r'$$\a\b\c$$'
, потому что он автоматически обрабатывается процессором уценки. Я также обнаружил, что я не мог использовать заменить метод:
>>> a.replace('\\','\\\\')
'$$\x07\x08\\\\c$$'
Как я могу решить эту проблему?
У вас есть доступ к инициализации 'a'? Если вы это сделаете, попробуйте 'a = r '$$ \ a \ b \ c $$'' (см. Http://stackoverflow.com/questions/2081640/what-exactly-do-and-r-string- flags-do-in-python-and-what-are-raw-string-l) – BorrajaX
@BorrajaX: Нет, это возвращаемое значение из регулярного выражения. – prosseek
Hmmmmpffrrr ... Daang ... Не могли бы вы разместить часть, которая вычисляет это 'a'? Как только ваша строка оценивается, нет пути назад (он не знает, что '\ x07' пришел из' \ a'. Может быть, что-то можно сделать, прежде чем вы получите это 'a'? – BorrajaX