我们走了,一个经典的:我试图在elisp中用双引号括起一个单词,但它也会插入反斜杠!
我做:
(replace-regexp-in-string
"[A-za-z0-9]+: "
(lambda (match) (concat "\"" (s-replace ":" "" match) "\": "))
"one tw2o: three")
结果包括反斜杠!
"one \"tw2o \": three"
我的目标是使用json-read-from-string
处理它。
我不认为这是在ielm中打印的问题,因为json读取失败。
我有一个使用with-temp-buffer
和re-search-forward
的工作版本,但这是同样的问题。
任何帮助和解释都表示赞赏!非常感谢。
编辑:如果我使用字符串(setq myjson "{one: \"1\", two: \"2\"}"
,我的功能就可以了:
(json-read-from-string (replace-regexp-in-string "[A-za-z0-9]+: "
(lambda (match) (concat "\"" (s-replace ":" "" match) "\": ")) myjson))
但结果是
((two\ . "2")
(one\ . "1"))
注意密钥末尾的反斜杠。
我删除了声称它有效的编辑,因为它仍然是pb。