Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String Lua尾随空间删除_String_Lua - Fatal编程技术网

String Lua尾随空间删除

String Lua尾随空间删除,string,lua,String,Lua,我在NodeMCU环境中使用Lua。我看到了删除空白的方法 答案是这样的: str = string.gsub(str, "%s+", "") 我发现它没有任何效果。下面是交互式命令的输出(使用LuaLoader) 如果我用十六进制检查字符串,我会看到有一些制表符。显然,%s(空白模式)不考虑制表符空格。是否存在导致%s与选项卡(0x09)匹配的设置 不要打印(某物、某物),而是打印(某物、某物)。连接单独的组件-不要只打印以逗号分隔的字符串列表。函数使用制表符打印其参数(将其转换为字符串后使

我在NodeMCU环境中使用Lua。我看到了删除空白的方法

答案是这样的:

str = string.gsub(str, "%s+", "")
我发现它没有任何效果。下面是交互式命令的输出(使用LuaLoader)


如果我用十六进制检查字符串,我会看到有一些制表符。显然,%s(空白模式)不考虑制表符空格。是否存在导致%s与选项卡(0x09)匹配的设置

不要打印(某物、某物),而是打印(某物、某物)。连接单独的组件-不要只打印以逗号分隔的字符串列表。

函数使用制表符打印其参数(将其转换为字符串后使用
tostring
)。要正确检查这一点,请使用
io.write
(它不在参数之间添加制表符,只将数字转换为字符串):

请注意,这将删除所有空格和换行符,即使它们位于字符串内部。要移除任一端的组件,请执行以下操作:

str = string.gsub(str, '^%s*(.-)%s*$', '%1')
或在行的末端和字符串的末端:

str = string.gsub(str, '[ \t]+%f[\r\n%z]', '')

我发现%c是控制字符的模式,所以我尝试了part1a=string.gsub(part1a,“%c+”,“”)。这对字符串仍然没有影响。谢谢-我显然是Lua的新手。我不知道Print会这样修改字符串。从现在起,我将使用io.write进行调试。好吧,不要完全放弃打印。我发现
print
对于调试通常很有用。让它将所有参数转换成一个字符串,并在它们之间用制表符打印,最后用换行符打印,这通常很有帮助。如果你需要在字符串中看到空白,这不是最好的选择。嘿@Cyclaminit,第二个代码块真的帮了我的忙。如何从字符串中删除换行符前后的一个空格?我试图简单地
str:gsub('\n','')
,但没有成功。我假设我需要使用一些“%s”、“[\n]”符号,但我没有使用它们的经验。
str:gsub('\n','')
删除
str
中的所有换行符;它对空间没有任何作用。要删除换行前后的所有可选单空格(如果有),请使用
str:gsub(“?\n?”,“\n”)
。我不确定目的是什么,但希望这就是你想要的。如果它不起作用,您可能想发布一个包含更多信息的单独问题。
str = string.gsub(str, '^%s*(.-)%s*$', '%1')
str = string.gsub(str, '[ \t]+%f[\r\n%z]', '')