Марк; его второй пример требует, чтобы каждый экранированный символ изначально был брошен в массив, который генерирует KeyError, если escape-последовательность отсутствует в массиве. Он умрет на чем угодно, кроме трех предоставленных символов (попробуйте \ v попробовать), и перечисление каждой возможной escape-последовательности каждый раз, когда вы хотите удалить строку (или сохранить глобальный массив), является действительно плохим решением. По аналогии с PHP используется preg_replace_callback()
с лямбдой вместо preg_replace()
, что совершенно не нужно в этой ситуации.
Извините, если я схожу с ума по этому поводу, я просто крайне разочарован Python. Это поддерживается любым другим механизмом регулярных выражений, который я когда-либо использовал, и я не могу понять, почему это не сработает.
Спасибо, что ответили; функция string.decode('string-escape')
- это именно то, что я искал изначально. Если у кого-то есть общее решение проблемы обратных ссылок регулярных выражений, не стесняйтесь опубликовать его, и я также приму это в качестве ответа.