Не удалось найти соответствующий PEP или ошибку для одной проблемы в модуле Python re
.
Кто-нибудь знает, планируется ли исправить следующее?
Python не поддерживает шестнадцатеричные escape-символы в синтаксисе замещающего текста, хотя он поддерживает \xFF и в строковых константах.
Но на самом деле он поддерживает стандартные escape-последовательности, такие как \n
, \r
и т. д.
Так, например, нельзя заменить символ '<'
на символ '>'
, используя шестнадцатеричные escape-последовательности:
>>> import re
>>> re.sub(r'\x3c', r'\x3e', '\x3c')
'\\x3e'
Вместо '\\x3e'
должно быть '>'
.
Использование экранированного \n
отлично работает:
>>> re.sub(r'a', r'\n', 'a')
'\n'
Заранее спасибо!
UPD: Не использовать необработанную строку нельзя. Например, если строки шаблона и замены хранятся в файле конфигурации, поэтому, если я напишу в нем \x3e, при чтении он станет '\\x3e'
вместо '>'
.