Lua string.gsub中有反斜杠错误

Lua string.gsub中有反斜杠错误,lua,gsub,Lua,Gsub,我做错了什么 当我断言时,我希望屏幕上会打印字符串te\st。。。但它不起作用 我有一个JSON文件,我想把它解码成一个表。我不需要打印任何东西,我做断言只是为了测试一个局部问题 所以我需要的是在JSON文件中保留所有包含“\”的数据。您的问题不太清楚,所以我不能100%确定您的意思。您的意思是希望在b等于字符串te\st时触发断言吗?如果是这样,您可以执行一个简单的操作: local a = "te\st" local b = string.gsub(a,'\','\\\\') assert(

我做错了什么

当我断言时,我希望屏幕上会打印字符串te\st。。。但它不起作用

我有一个JSON文件,我想把它解码成一个表。我不需要打印任何东西,我做断言只是为了测试一个局部问题


所以我需要的是在JSON文件中保留所有包含“\”的数据。

您的问题不太清楚,所以我不能100%确定您的意思。您的意思是希望在b等于字符串te\st时触发断言吗?如果是这样,您可以执行一个简单的操作:

local a = "te\st"
local b = string.gsub(a,'\','\\\\')
assert(false,b)
或者我支持

assert(b ~= "te\st")

你的问题不太清楚,所以我不能100%确定你的意思。您的意思是希望在b等于字符串te\st时触发断言吗?如果是这样,您可以执行一个简单的操作:

local a = "te\st"
local b = string.gsub(a,'\','\\\\')
assert(false,b)
或者我支持

assert(b ~= "te\st")
如果不希望反斜杠具有特殊含义,请使用[[]]代替或

阅读文字字符串。

如果不希望反斜杠具有特殊含义,请使用[[]]代替或


阅读文字字符串。

您不需要gsub。但无论如何,它在这里

assert(b ~= a)

你不需要gsub。但无论如何,它在这里

assert(b ~= a)

您是否尝试过用%字符而不是\


我不知道这是否有帮助,但我花了很长时间让Lua的gsub将我的字符串与我想要的特殊字符匹配。。。结果是,我没有使用\作为转义字符,也没有将字符加倍,而是需要在特殊字符前面加上%的前缀,以便按字面意思处理。

您是否尝试过用%字符而不是\


我不知道这是否有帮助,但我花了很长时间让Lua的gsub将我的字符串与我想要的特殊字符匹配。。。事实证明,我不需要将\用作转义字符,也不需要将字符加倍,而是需要在特殊字符前面加上%的前缀,以便按字面意思处理。

Hi,我将澄清我的问题。我有一个JSON文件,我想把它解码成一个表。我不需要打印任何东西,我做断言只是为了测试一个局部问题。所以我需要的是保留JSON文件中包含“\”的所有数据。请用这些信息更新您的问题,并提供一个最简单的示例。嗨,我将澄清我的问题。我有一个JSON文件,我想把它解码成一个表。我不需要打印任何东西,我做断言只是为了测试一个局部问题。所以我需要的是在JSON文件中保留所有包含“\”的数据。请用这些信息更新您的问题,并提供一个最简单的示例。嗨,这可能是解决方案。我得到了JSON格式的字符串。我希望保留所有包含“\”的数据。因此,我不想在JSON代码中添加[[]]。我宁愿从luaIn开始处理它,Lua反斜杠只有在字符串文本中才有特殊意义,即在您直接在代码中键入的字符串中。如果您的数据是JSON格式的,那么JSON规则很可能会解释其中的反斜杠,不管您使用哪个Lua库来加载JSON。很难说,因为您没有提供足够的详细信息。您好,这可能是解决方案。我得到了JSON格式的字符串。我希望保留所有包含“\”的数据。因此,我不想在JSON代码中添加[[]]。我宁愿从luaIn开始处理它,Lua反斜杠只有在字符串文本中才有特殊意义,即在您直接在代码中键入的字符串中。如果您的数据是JSON格式的,那么JSON规则很可能会解释其中的反斜杠,不管您使用哪个Lua库来加载JSON。很难说,因为您没有提供足够的详细信息。您好,此解决方案不起作用。还有什么方法可以代替gsub?嗨,这个解决方案不起作用。还有什么方法可以代替gsub?我假设如果我解决这个小例子,我将能够对JSON部分使用相同的解决方案请指定b中的内容,以及您期望/希望得到更好的答案的结果是什么?更好地解释您的问题/使用更多包含JSON部分的代码?我假设如果我解决了这个小示例,我将能够对JSON部分使用相同的解决方案。请指定b中的内容,以及您希望/希望得到更好的答案的结果是什么?更好地解释您的问题/使用更多包含JSON部分的代码?是的,取决于您使用的LUA版本,它将接受\和%作为较旧版本的转义字符,或只接受%较新版本是的,取决于您使用的LUA版本,它将接受\和%作为较旧版本的转义字符,或只接受%较新版本的转义字符