当前位置:  开发笔记 > 开发工具 > 正文

如何在Emacs Lisp中用字符串中的反斜杠替换正斜杠?

如何解决《如何在EmacsLisp中用字符串中的反斜杠替换正斜杠?》经验,为你挑选了2个好方法。

我想在emacs lisp中将前向slaches替换为反斜杠.如果我用这个:

(replace-regexp-in-string "\/" "\\" path))

我收到一个错误.

(error "Invalid use of `\\' in replacement text")

那么如何在第二个正则表达式中表示反斜杠?



1> Svante..:

你所看到的"C:\\foo\\bar"是字符串的文本表示"C:\foo\bar",带有转义的反斜杠以供进一步处理.

例如,如果使用反斜杠字符创建长度为1的字符串:

(make-string 1 ?\\)

您得到以下响应(例如,在使用Cx Ce评估上述内容时,在迷你缓冲区中):

"\\"

获得所需内容的另一种方法是切换"文字"标志:

(replace-regexp-in-string "/" "\\" path t t)

顺便说一句,你不需要逃避斜线.



2> Peter Bought..:

是否需要双重转义?

(replace-regexp-in-string "\/" "\\\\" path)


双重逃脱,即.连续4个反斜杠*做*工作.您在结果中看到2个连续反斜杠的原因是它们在字符串中被转义.如果您尝试再次输出字符串,它看起来是正确的.
您也可以这样写它以获得更好的可读性:( replace-regexp-in-string"/"(regexp-quote"\\")path)
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有