2011-03-14 58 views
3

一個字符串傳遞給LUA功能 如何獲得在雙引號字符串,字符串GET字符串在LUA雙引號

像somestring是通過在Lua 運作XYZ字符串需要的價值有些字符串用雙引號。

回答

4

如果我理解了你的問題,你可以用幾種不同的方法做到這一點。

  1. 使用轉義雙引號:

    function quote(str) 
        return "\""..str.."\"" 
    end 
    
  2. 使用單引號用雙引號字符不進行轉義:

    function quote2(str) 
        return '"'..str..'"' 
    end 
    
+0

T非常感謝您的幫助 – che 2011-03-14 23:09:00

5

您只需膠報價爲字符串:

local str = "foo" 

print('"' .. foo .. '"') --> "foo" 
print("\"" .. foo .. "\"") --> "foo" 
print([["]] .. foo .. [["]]) --> "foo" 

但是,如果您正在構造機器消耗的數據(例如,對於序列化),您想要避免引號和可能在字符串內的其他有趣字符。使用此"%q"格式說明:

local str = 'f"o"o' 

print(string.format("%q", str)) --> "f\"o\"o" 

在較短的形式:

print(("%q"):format(str)) --> "f\"o\"o" 
0

萬一你想既逃避和報價:

function string.quote(str) 
    return '"' .. str:gsub('\\', '\\\\'):gsub('"', '\\"') .. '"' 
end 

local a = '"Hello again \\ to all my friends"' 

print(a:quote()) 

它會給你以下字符串:

"\"Hello again \\ to all my friends\"" 
相關問題