Как экранировать многострочный текст регулярного выражения в действительный 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 ответ

Вы должны избежать всех символов знака доллара. Изменить все $ с помощью \$

Другие вопросы по тегам