Я пытаюсь работать над своим парсером JSON. У меня есть строка ввода, которую я хочу tokenize:
input = "{ \"foo\": \"bar\", \"num\": 3}"
Как удалить escape-символ \
, чтобы он не был частью моих токенов?
В настоящее время мое решение с использованием delete
работает:
tokens = input.delete('\\"').split("")
=> ["{", " ", "f", "o", "o", ":", " ", "b", "a", "r", ",", " ", "n", "u", "m", ":", " ", "3", "}"]
Однако, когда я пытаюсь использовать gsub
, он не может найти какой-либо \"
.
tokens = input.gsub('\\"', '').split("")
=> ["{", " ", "\"", "f", "o", "o", "\"", ":", " ", "\"", "b", "a", "r", "\"", ",", " ", "\"", "n", "u", "m", "\"", ":", " ", "3", "}"]
У меня есть два вопроса:
1. Почему gsub не работает в этом случае?
2. Как удалить символ обратной косой черты (escape)? В настоящее время я должен удалить символ обратной косой черты с помощью кавычек, чтобы сделать эту работу.