Lua对包含双引号和/或单引号的字符串发出问题-string.format(";%q";)后缀带有\13
在卢阿, 我正在阅读一个文本文件,其中的行可能包含单引号或双引号,例如: “习惯于从生活中开始,不受约束地生活”-西班牙谚语 这些线的用途如下:Lua对包含双引号和/或单引号的字符串发出问题-string.format(";%q";)后缀带有\13,lua,double-quotes,string.format,single-quotes,Lua,Double Quotes,String.format,Single Quotes,在卢阿, 我正在阅读一个文本文件,其中的行可能包含单引号或双引号,例如: “习惯于从生活中开始,不受约束地生活”-西班牙谚语 这些线的用途如下: local cmd = 'zenity --question --no-wrap --title "pause" --text ' .. string.format("%q", quote) print (cmd) local retVal = os.execute(cmd) 一切正常,但在字符串的最后,字符
local cmd = 'zenity --question --no-wrap --title "pause" --text ' .. string.format("%q", quote)
print (cmd)
local retVal = os.execute(cmd)
一切正常,但在字符串的最后,字符\13作为字符串的后缀,我不希望这样
zenity --question --no-wrap --title "pause" --text "L'habitude commence comme un fil de soie et devient vite un câble d'acier. - Proverbe espagnol\13"
zenity windows将显示此\13字符
如何解决这个问题
谢谢
相关的:
您的原始文本以
\13
结尾,一个CR。请使用删除它
quote = quote:sub(quote,1,-2)
如果字符串可能不以CR结尾,则将其删除(如果有)
quote = quote:gsub("\13$","")
您的报价中包含运费申报单。回车不是可打印字符。Lua应该如何引用不可打印的字符 从 说明符q以某种方式格式化布尔、nil、数字和字符串 结果是Lua源代码中的有效常量。布尔人和 nil是用明显的方式写的(真、假、nil)。花车是 用十六进制写的,以保持全部精度。一串是 在双引号之间写入,必要时使用转义序列 确保Lua解释器可以安全地读回它。对于 例如,电话
string.format('%q', 'a string with "quotes" and \n new line')
可以生成字符串:
"a string with \"quotes\" and \
new line"
如果不希望它以\13
的形式出现在字符串中,请将其删除
您可以使用string.sub
将其删除。最好使用string.gsub
删除多个回车符
或者使用
string.format(''%s',引号)
或string.format(\'%s',引号)
。在字符串中写入双引号的方法甚至更多。哼哼,那么我应该测试string.string.format(''%s',quote)中是否确实有CR。它可以工作>在字符串中写入双引号的方法甚至更多。要了解更多信息,请使用串联运算符代替string.format<代码>打印(“\”…quote..“\”)或打印(““…quote..”)
或打印([[“]]..quote..[“]])
…是的,但这些都不起作用,因为有些句子已经包含单引号和双引号