2.4.8.1 字符串语法

字符串的读取语法是一对双引号,中间包含任意数量的字符,例如 "like this"。要在字符串中包含双引号,需在其前面加反斜杠;因此,"\"" 是一个只包含单个双引号的字符串。同理,要在字符串中包含反斜杠本身,需在前面再加一个反斜杠,例如:"this \\ is a single embedded backslash"

由于字符串是字符数组,你可以使用字符的读取语法来指定字符串中的字符,但去掉开头的问号。这在字符串常量中包含那些不能表示自身的字符时非常有用。 因此,控制字符可以用以反斜杠开头的转义序列来表示;例如,"foo\r" 表示 ‘foo’ 后面跟一个回车符。其他控制字符的转义序列,See 基本字符语法。同样,你也可以使用控制字符的专用读取语法(see 控制字符语法),例如 "foo\^Ibar",它会在字符串中嵌入一个制表符。你还可以使用 通用转义语法 中描述的非-ASCII 字符转义序列,例如 "\N{LATIN SMALL LETTER A WITH GRAVE}""\u00e0"(但请注意 字符串中的非-ASCII 字符 一节中关于非-ASCII 字符的注意事项)。

换行符在字符串的读取语法中并不特殊:如果你在双引号之间直接换行,它会成为字符串中的一个字符。但转义换行符—— 即前面带 ‘\’ 的换行 ——不会成为字符串的一部分;也就是说,Lisp 读取器在读取字符串时会忽略转义换行。转义空格 ‘ 同样会被忽略。

"It is useful to include newlines
in documentation strings,
but the newline is \
ignored if escaped."
     ⇒ "It is useful to include newlines
in documentation strings,
but the newline is ignored if escaped."
emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike