(Python) Распечатать все экранирующие символы - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть несколько строк с \ в нем. Я стараюсь не использовать escape-символы, используя функцию замены, например:

string.replace("\\", "\\\\")

. Это не работает.

Когда я использую string.replace("\n", "\\n") для \n, оно работает напрямую. Есть ли простое рабочее решение для этого?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2020

Важно отметить, что замена не влияет на переменную, а скорее возвращает копию с примененной заменой. См. документы :

this = "string\\string"
this.replace("\\", "")

print(this)
>"string\\string"

Если вы хотите, чтобы исходная строка была заменен

this = this.replace("\\", "")

Однако для преобразования \n -> n потребуется, чтобы вы по-другому об этом подумали. т.е. replace('\n', 'n'), поскольку \n является одиночным символом.

0 голосов
/ 07 февраля 2020

Вы можете попробовать это:

def test():
    foo = r"this is a \\ and this is a \ "
    foo = foo.replace("\\" , r'\\') # added the r to ignore string escapes as escapes

    print(foo)

test()

вывод:

this is a \\\\ and this is a \\
0 голосов
/ 07 февраля 2020

Использовать необработанные строки .

r"This \ string \ includes '\'s"
...