【问题标题】:Remove spaces from a string but not new lines in lua从字符串中删除空格但不删除lua中的新行
【发布时间】:2021-06-30 15:49:29
【问题描述】:

我使用string.gsub(str, "%s+")从字符串中删除空格但不删除新行,例如:

str = "string with\nnew line"
string.gsub(str, "%s+")
print(str)

我希望输出是这样的:

stringwith
newline

我应该使用什么模式来获得该结果。

【问题讨论】:

  • 如果你只想要空格然后使用" "
  • 在 lua 模式中%s 表示空白字符,换行符也是,所以string.gsub(str, "[ ]+", "") 应该做你想做的事

标签: string lua lua-patterns


【解决方案1】:

您似乎想匹配与 %s 匹配的任何空格,但从模式中排除换行符。

您可以在取反字符集[^...] 中使用反向%S 模式(匹配任何非空白字符),并在此处添加\n

local str = "string with\nnew line"
str = string.gsub(str, "[^%S\n]+", "")
print(str)

查看online Lua demo 产生

stringwith
newline

【讨论】:

  • 这就是我要找的,删除多个空格而不是删除新行。
【解决方案2】:

"%s" 匹配任何空白字符。如果要匹配空格,请使用" "。如果您想定义特定数量的空格,请明确写下" " 或使用string.rep(" ", 5)

【讨论】:

    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 2017-11-20
    • 2011-09-21
    • 2012-03-25
    相关资源
    最近更新 更多