在Lua中操作带“\”的字符串时出现错误

local filepath = "c:\\temp\\parentdir"
local dirname = string.match(filepath, "[^\\]+$")
print(dirname)

上述代码输出正确结果:parentdir

然而,如果只使用单个"\",即如下代码

local filepath = "c:\temp\parentdir"
local dirname = string.match(filepath, "[^\\]+$")
print(dirname)

我会得到以下错误的反馈

"lua: main.lua:1: invalid escape sequence near '"c: emp\p'"

请帮忙解决。我们如何在程序中解决这个问题呢?

点赞
用户7746452
用户7746452

这不是个问题,因为你提供的不是字面上的 c:\temp\parentdir,而是 c:{tab}emp{unknown_character}arentdir。要提供c:\temp\parentdir,你可以使用:

  1. "c:\\temp\\parentdir"
  2. 'c:\\temp\\parentdir'
  3. [[c:\temp\parentdir]]

如果你从文件或输入中读取 c:\temp\parentdir,则不必添加第二个 \,因为这只是代码转义字符。有关更多信息,请点击此处

第二个解决方案是使用 / 而不是 \

2020-06-16 12:09:19