我正在尝试在elisp中创建字符串\],以便包含在正则表达式中。当我返回字符串\\]时,我得到了字符串\\],但是当我返回字符串\]时,我得到了字符串]。这对我来说没有任何意义。下面是ielm的输出:
ELISP> "\\"
"\\"
ELISP> "\\]"
"\\]"
ELISP> "\]"
"]"这是怎么回事。为什么第一个反斜杠没有转义第二个反斜杠?
发布于 2013-02-05 14:47:34
您缺少的是字符串的打印方式与您必须键入它们的方式相同。因此,如果字符串包含需要转义的字符,则会在其前面打印一个反斜杠。但是如果它包含一个不需要转义的字符,就不会打印出来。
当您键入"\\"时,它会创建一个包含单个反斜杠字符的字符串。这将打印为"\\"。
当您键入"\\["时,它会创建一个包含两个字符的字符串:反斜杠后跟方括号。这将打印为"\\["。
当您键入"\["时,反斜杠将转义方括号。这种转义是多余的,因为方括号不需要转义。因此,它创建与"["相同的字符串:一个包含单方括号字符的字符串。这将打印为"[",因为不需要转义方括号。
https://stackoverflow.com/questions/14701550
复制相似问题