如何在字符串中添加双引号字符?

时间:2011-03-14 22:31:29

标签: lua

如何在给定字符串中添加双引号字符?

local str = "foo"

如何获取字符串"foo",其中字符串包含前导和尾随引用"

3 个答案:

答案 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)

如果我理解你的问题,你可以用几种不同的方式来做。

  1. 使用转义双引号:

    function quote(str)
        return "\""..str.."\""
    end
    
  2. 使用单引号使用双引号字符而不转义:

    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\""