Получил строку с одинарной обратной косой чертой (!) В Lua, которую нужно экранировать или заменить - Как? - PullRequest
3 голосов
/ 18 февраля 2012

В Adobe Lightroom плагин написан на 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"

Прошел много постов и онлайн-уроков, но извините, я не смог понять это.Надеюсь, что есть решение, спасибо за ответы.

Ответы [ 3 ]

3 голосов
/ 18 февраля 2012

если у вас штраф с косой чертой, почему бы просто не заменить их:

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

То же самое происходит, если вы думаете, что удвоение их поможет вам:

images[i]=images[i]:gsub("\\","\\\\")
1 голос
/ 30 апреля 2012

У меня была такая же проблема, и у меня это сработало:

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

, поэтому images[i]=images[i]:gsub("\\\\","/") должно работать.

0 голосов
/ 22 сентября 2016

Вы можете разделить строку с помощью [[ и ]]:

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


> s = [[\n]]
> print(s)
\n
...