Lua 中存在具有单斜杠 (!) 的字符串需要进行转义或替换 - 如何处理?

在Adobe Lightroom中,Plug-in是用Lua写的。为了学习Lua,我正在通过SDK自己制作插件。 现在我遇到了这样一种情况:我要从名为“images”的表中获取一个字符串,如下所示:

images[1] = "d:\Windows\Temp\LREXPORT\NK119542.tif"

但当然Lua根本不喜欢这些未转义的反斜杠。该表的内容根据用户操作而变化。我正在考虑一种解决方案,以抓取该字符串并进行进一步处理。

正确的字符串应该是:

newimages = "d:/Windows/Temp/LREXPORT/NK119542.tif"
newimages = "d:\\Windows\\Temp\\LREXPORT\\NK119542.tif"

浏览了许多帖子和在线教程,但抱歉,我无法解决这个问题。 希望有一个解决方案,谢谢回复。

原文链接 https://stackoverflow.com/questions/9338491

点赞
stackoverflow用户513763
stackoverflow用户513763

如果您喜欢正斜杠,为什么不直接替换它们:

images[i] = images[i]:gsub("\\", "/")

同样的,如果您认为双倍的反斜杠可以帮助您:

images[i] = images[i]:gsub("\\", "\\\\")
2012-02-18 09:15:32
stackoverflow用户1342413
stackoverflow用户1342413

我也遇到了同样的问题,这个方法对我有效:

user = string.gsub(user, "\\\\", "/")

所以 images[i]=images[i]:gsub("\\\\","/") 应该也可以解决问题。

2012-04-29 20:47:05
stackoverflow用户1195799
stackoverflow用户1195799

你可以使用 [[]] 来分隔你的字符串:

Lua 5.2.3  Copyright (C) 1994-2013 Lua.org, PUC-Rio
> s = '\n'
> print(s)

> s = [[\n]]
> print(s)
\n
2016-09-22 19:05:06