Как правильно использовать unicode_escape? - PullRequest
0 голосов
/ 29 апреля 2019

Мне нужно добавить еще \ для экранирования некоторых символов.Например, BC \ BS должно стать BC \\ BS.Следующая строка решает проблему:

txt.encode('unicode_escape').replace("'", "\\'")

Однако, это спутывает другие символы.Например, ^@? становится \x00?.в такой ситуации мне нужно будет удалить \x00 в качестве следующего шага, но могут появиться другие символы.

Какой самый Pythonic способ добавить escape-символ к набору символов, таких как \, \t, \n и т. Д. Без прерывания работы других символов?Я пытался использовать translate, но столкнулся с проблемами, так как размер символа \\t не равен \t.

1 Ответ

0 голосов
/ 29 апреля 2019

Вы пытаетесь экранировать определенные символы в текстовых строках, необработанных текстовых строках или байтовых строках? Какой полный набор символов вам нужно убежать? Если это текст, то нет необходимости сначала его кодировать ... Некоторые вещи, которые вы можете попробовать:

test = "Please escape this: ' and this \n"
for char in ["'","\n"]:
     test = test.replace(char, f"\{char}")

complicated_test = "This \tstring \n is \ full of ' things to \t escape"
re.escape(complicated_test)
...