我在 NodeMCU 环境中使用 Lua。我看到了这个问题中提出的空白修剪方法。
答案建议采用以下形式:
str = string.gsub(str, "%s+", "")
Run Code Online (Sandbox Code Playgroud)
我发现它没有任何影响。这是交互式命令的输出(使用 LuaLoader)。
> print("|",part1,"|")
| 172.16.0.19 |
> part1a = string.gsub(part1, "%s+", "")
> print("|",part1a,"|")
| 172.16.0.19 |
>
Run Code Online (Sandbox Code Playgroud)
如果我检查十六进制字符串,我会看到有一些选项卡。显然 %s (空白模式)不认为制表符是空白。是否存在导致 %s 匹配选项卡 (0x09) 的设置?
该print
函数使用它们之间的制表符打印其参数(在将它们转换为带有 的字符串之后tostring
)。要正确检查这一点,请使用io.write
(它不会在其参数之间添加制表符,只会将数字转换为字符串):
str = ' 172.16.0.19 '
stripped = string.gsub(str, '%s+', '')
io.write('|', str, '|\n')
io.write('|', stripped, '|\n')
Run Code Online (Sandbox Code Playgroud)
请注意,这将删除所有空格和换行符,即使它们在字符串内。要删除两端的那些:
str = string.gsub(str, '^%s*(.-)%s*$', '%1')
Run Code Online (Sandbox Code Playgroud)
或在行尾和字符串末尾:
str = string.gsub(str, '[ \t]+%f[\r\n%z]', '')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4943 次 |
最近记录: |