local a = "te\st"
local b = string.gsub(a,'\','\\\\')
assert(false,b)
我做错了什么?
当我执行assert
时,我希望屏幕上显示字符串te\st
...但它不起作用
我有一个JSON文件,我想将其解码为Lua表。我不需要打印任何内容,我只是为了测试本地问题assert
。
所以我需要的是将所有数据保存在具有'\'
。
答案 0 :(得分:3)
如果您不希望反斜杠具有特殊含义,请使用[[]]
代替""
或''
。
阅读文字字符串in the manual。
答案 1 :(得分:2)
您是否尝试使用%
字符而不是\
我不知道这是否会有所帮助,但我有一段时间让Lua的gsub
匹配我的字符串中的特殊字符,我希望从字面上对待......事实证明使用\
作为转义字符,或者将字符加倍,我需要在特殊字符前加上%
,以便对其进行字面处理。
答案 2 :(得分:0)
你的问题不太清楚,所以我不是100%肯定你的意思。你的意思是当b等于字符串“te \ st”时你想要断言吗?如果是这样,你可以做一个简单的事情:
assert(b ~= "te\st")
或者我赞成......
assert(b ~= a)
答案 3 :(得分:0)
您不需要gsub。但无论如何它在这里。
local a = "te\\st"
local b = string.gsub(a,'\\','\\')
assert(false,b)