Lua忽略转义序列

Ber*_*rer 5 lua escaping string-literals

目前Lua有以下转义序列:

  • \a: 贝尔
  • \b:退格键
  • \f: 换页
  • \n: 新队
  • \r: 回车
  • \t: 标签
  • \v:垂直制表符
  • \\: 反斜杠
  • \": 双引号
  • \':单引号
  • \nnn:八进制值(nnn 是 3 个八进制数字)
  • \xNN:十六进制值(Lua5.2/LuaJIT,NN是两个十六进制数字)

我如何使用一个字符串,例如"\a\f\\\""忽略所有这些转义序列,可以说按字面解释它?

小智 4

你可以使用Lua的长括号,也称为括号形式,例如[[\a\f\\]]

在转义序列下查看: http: //lua-users.org/wiki/StringsTutorial

您也许还可以使用string.format和做一些事情%q,但我不记得这将如何从我的脑海中产生。我认为它以适合有效 Lua 的格式呈现字符串。

另外,正如其他评论中所指出的,八进制的 C 转义序列\nnn,在 Lua 中\ddd存在,并且很容易与 Lua需要十进制数字的转义序列混淆。

以下参考图片取自Lua 5.4 参考手册

Lua 类 C 转义序列的子集 十进制,不是八进制 十六进制 长括号形式