Как заменить символ в строке, содержащей '\ x'? - PullRequest
0 голосов
/ 12 сентября 2018

Цель: Удалить '\x' из строки.

split(), strip() и replace() все выдают одинаковую ошибку.

Кто-нибудь может мне помочь?

my_list = '\x00\x06\x00'
my_list.replace('\x', '')
ValueError: invalid \x escape

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Строковый литерал по умолчанию в Python рассматривает обратную косую черту как escape-символ.

Чтобы буквально интерпретировать обратную косую черту, используйте r'my string with \x in it', поэтому попробуйте:

my_list.replace(r'\x', '')

https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

Что именно делают строковые флаги "u" и "r" и что такое необработанные строковые литералы?

0 голосов
/ 12 сентября 2018

Вам нужно поставить r перед '\x' в replace(), а также строку. Это скажет Python, что \ следует интерпретировать как символ, а не как escape-символ.

my_list = r'\x00\x06\x00'
my_list.replace(r'\x', '')
...