Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 将Lua中的每个“替换为\”_Replace_Lua_Escaping - Fatal编程技术网

Replace 将Lua中的每个“替换为\”

Replace 将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

:我想将整个lua脚本转储到一个字符串行,以后可以将其编译成C程序

Y-问题:如何用\替换每个

我认为这样做是有道理的

数据=string.gsubline,c,\c
其中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-将在任何引号前加反斜杠