Как экранировать многострочный текст регулярного выражения в действительный json?
Value Year (\d+)
Value Timezone (\S+)
Value MonthDay (\d+)
Value Month (\w+)
Value Time (..:..:..)
Start
^${Time}.* ${Timezone} \w+ ${Month} ${MonthDay} ${Year} -> Record
Это шаблон для texfsm, который выполняет синтаксический анализ ответов на основе cli с помощью шаблона регулярных выражений. Вот возвращение из javascripts json.stringify
{"template":"Value Year (\\d+)\nValue Timezone (\\S+)\nValue MonthDay (\\d+)\nValue Month (\\w+)\nValue Time (..:..:..)\n\nStart\n ^${Time}.* ${Timezone} \\w+ ${Month} ${MonthDay} ${Year} -> Record"}
Я хочу написать этот шаблон на внешнем интерфейсе, а затем отправить его на мой сервер для обработки. Я использовал json.stringify(), но когда попробуйте использовать json.loads() в python, он компенсирует неправильно экранированные символы.
ValueError: Invalid \escape: line 1 column 83 (char 82)
Как я могу должным образом экранировать этот шаблон для json, чтобы затем удалить его и использовать на моем сервере в python?
-
Как примечание стороны.
Я видел здесь, как избежать регулярных выражений ( есть ли функция RegExp.escape в Javascript?), Хотя я немного не уверен, как ее удалить.
1 ответ
Вы должны избежать всех символов знака доллара. Изменить все $ с помощью \$