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

che*_*che 4 lua

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

local str = "foo"
Run Code Online (Sandbox Code Playgroud)

如何获取"foo"字符串包含前导和尾随引号的字符串"

vha*_*lac 6

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

  1. 使用转义双引号:

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

    function quote2(str)
        return '"'..str..'"'
    end
    
    Run Code Online (Sandbox Code Playgroud)


Ale*_*ysh 6

您可以将引号粘贴到字符串:

local str = "foo"

print('"' .. foo .. '"') --> "foo"
print("\"" .. foo .. "\"") --> "foo"
print([["]] .. foo .. [["]]) --> "foo"
Run Code Online (Sandbox Code Playgroud)

但是如果你正在为机器消费构建数据(例如用于序列化),你想要转义引号和字符串中可能存在的其他有趣字符.使用"%q"格式说明符:

local str = 'f"o"o'

print(string.format("%q", str)) --> "f\"o\"o"
Run Code Online (Sandbox Code Playgroud)

缩短形式:

print(("%q"):format(str)) --> "f\"o\"o"
Run Code Online (Sandbox Code Playgroud)