Replace 将Lua中的每个“替换为\”
:我想将整个lua脚本转储到一个字符串行,以后可以将其编译成C程序 Y-问题:如何用\替换每个 我认为这样做是有道理的 数据=string.gsubline,c,\cReplace 将Lua中的每个“替换为\”,replace,lua,escaping,Replace,Lua,Escaping,:我想将整个lua脚本转储到一个字符串行,以后可以将其编译成C程序 Y-问题:如何用\替换每个 我认为这样做是有道理的 数据=string.gsubline,c,\c 其中c是-字符。但这当然不行。如果我理解您的Y问题,您需要避开引号和反斜杠: data = string.gsub(line, "\"", "\\\"") 或者使用其他单引号,但仍要转义反斜杠: data = string.gsub(line, '"', '\\"') 如果我理解您的Y问题,您需要避开引号和反斜杠: data
其中c是-字符。但这当然不行。如果我理解您的Y问题,您需要避开引号和反斜杠:
data = string.gsub(line, "\"", "\\\"")
或者使用其他单引号,但仍要转义反斜杠:
data = string.gsub(line, '"', '\\"')
如果我理解您的Y问题,您需要避开引号和反斜杠:
data = string.gsub(line, "\"", "\\\"")
或者使用其他单引号,但仍要转义反斜杠:
data = string.gsub(line, '"', '\\"')
解决X问题的一个方法是安全地转义可能干扰解释器的任何序列
Lua有%q选项,该选项将格式化和转义提供的字符串,以便Lua可以安全地读回该字符串。对于您的C解释器来说也是如此
示例字符串:此\字符串非常棘手
如果您只是将它括在单引号或双引号中,仍然会有一个引号提前结束字符串。还有无效的转义序列\s
假设此字符串已在Lua中正确处理,因此我们将其作为参数传递:
string.format%q,'此\\string很棘手'
返回注意,我在代码输入中使用了单引号:
这个\\字符串真的\棘手
这是一个完全有效的Lua字符串,可以从文件中写入和读取。无需手动逃避每个特殊字符,也无需冒实现错误的风险
若要正确实现Y方法,若要将无效字符转义为\,请使用前缀+捕获的字符串替换捕获的字符串:
string.gsub'hello',[\'],\\%1-将在任何引号前面加反斜杠解决X问题的方法是安全地转义可能干扰解释器的任何序列
Lua有%q选项,该选项将格式化和转义提供的字符串,以便Lua可以安全地读回该字符串。对于您的C解释器来说也是如此
示例字符串:此\字符串非常棘手
如果您只是将它括在单引号或双引号中,仍然会有一个引号提前结束字符串。还有无效的转义序列\s
假设此字符串已在Lua中正确处理,因此我们将其作为参数传递:
string.format%q,'此\\string很棘手'
返回注意,我在代码输入中使用了单引号:
这个\\字符串真的\棘手
这是一个完全有效的Lua字符串,可以从文件中写入和读取。无需手动逃避每个特殊字符,也无需冒实现错误的风险
若要正确实现Y方法,若要将无效字符转义为\,请使用前缀+捕获的字符串替换捕获的字符串:
gsub'hello',[\'],\\%1-将在任何引号前加反斜杠