Как экранировать многострочный текст регулярного выражения в действительный json? - PullRequest
0 голосов
/ 04 июля 2018
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 Ответ

0 голосов
/ 04 июля 2018

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

...