Разбор экранированных кавычек в строкеPython

Программы на Python
Anonymous
Разбор экранированных кавычек в строке

Сообщение Anonymous »

Я пытаюсь проанализировать язык с помощью таких строк:

Код: Выделить всё

" embedded quote \" embedded expression \(1+2)  "
Первый символ \ экранирует кавычки, а второй \ является буквальным. Насколько я понимаю, QuotedString я пробовал:

Код: Выделить всё

string_literal = pp.QuotedString('"',esc_char='\\',convert_whitespace_escapes=False)
который обрабатывает экранированную кавычку, как и ожидалось, но поглощает вторую \. Печать проанализированных токенов в действии синтаксического анализа дает

Код: Выделить всё

[' embedded quote " embedded expression (1+2)  ']
Как сохранить второй

Код: Выделить всё

\. Обратите внимание: хотя вставка \\(
во входную строку дает желаемый результат, она имеет другую интерпретацию на базовом языке.
Та же проблема возникает с другими экранированными символами, например, \n становится n и т. д.

Вернуться в «Python»