如何在给定字符串中添加双引号字符?
local str = "foo"
如何获取字符串"foo"
,其中字符串包含前导和尾随引用"
?
答案 0 :(得分:6)
您可以将引号粘贴到字符串:
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"
答案 1 :(得分:4)
如果我理解你的问题,你可以用几种不同的方式来做。
使用转义双引号:
function quote(str)
return "\""..str.."\""
end
使用单引号使用双引号字符而不转义:
function quote2(str)
return '"'..str..'"'
end
答案 2 :(得分: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\""