хранение данных в необработанном режиме при передаче в re.match - PullRequest
0 голосов
/ 19 декабря 2011

В исходном файле у меня в строке есть следующий элемент данных (как есть, len = 11):

(?i:\'sa\')

Когда я передаю его в re.match, соответствующее значение (.groupdict ()), записанное в файл, выглядит так:

(?i:\sa\)

(Len = 9)

Вопрос в том, как сохранить значение raw (как в следующем примере b), между re.match и file.write

>>> a = '(?i:\'sa\')'
>>> b = r'(?i:\'sa\')'
>>> len(b)
11
>>> len(a)
9
>>> len(b)
11
>>> print b
(?i:\'sa\')

Обратите внимание: поскольку я обрабатываю большие и сложные файлы, предоставленные третьей стороной, я не хочу и не могу перейти с 'a\'b' на "b'b", но должен сохранить все как есть.

1 Ответ

2 голосов
/ 19 декабря 2011

Вероятно string_escape - это то, что вам нужно:

>>> s = raw_input()
(?i:\'sa\')
>>> s
"(?i:\\'sa\\')"
>>> len(s)
11
>>> s.decode('string_escape')
"(?i:'sa')"
>>> len(s.decode('string_escape'))
9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...