Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试\]在 elisp 中创建字符串以包含在正则表达式中。当我返回字符串时,\\]我得到了字符串\\],但是当我返回字符串时,\]我得到了字符串]。这对我来说真的没有任何意义。这是 ielm 的输出:
\]
\\]
]
ELISP> "\\" "\\" ELISP> "\\]" "\\]" ELISP> "\]" "]"
这里发生了什么。为什么第一个反斜杠没有转义第二个反斜杠?
您缺少的是字符串的打印方式与您键入它们的方式相同。因此,如果字符串包含需要转义的字符,则会在其前面打印反斜杠。但如果它包含不需要转义的字符,则不会打印。
当您键入"\\"时,它会创建一个包含单个反斜杠字符的字符串。这被打印为"\\".
"\\"
当您键入"\\["时,它会创建一个包含两个字符的字符串:反斜杠后跟方括号。这被打印为"\\[".
"\\["
当您键入"\["时,反斜杠会转义方括号。这种转义是多余的,因为方括号不需要转义。因此它创建了与 : 相同"["的字符串,该字符串包含单个方括号字符。这将打印为"[",因为不需要转义方括号。
"\["
"["