lua中移除字符串中的空格但保留换行

我使用string.gsub(str, "%s+")来移除字符串中的空格,但不想移除换行,例如:

str = "包含\n换行的字符串"
string.gsub(str, "%s+")
print(str)

我希望输出结果为:

stringwith
newline

我应该使用什么模式来得到这个结果。

点赞
用户2858170
用户2858170

"%s" 匹配任何空格字符。 如果要匹配空格,请使用 " "。 如果要定义特定数量的空格,请显式地写下它们 " " 或使用 string.rep(" ", 5)

2021-04-04 14:54:23
用户3832970
用户3832970

似乎你想要匹配任何与 %s 匹配的空白符,但不包括换行符在模式中。

你可以在否定字符集 [^...] 中使用一个反转的 %S 模式(匹配任何非空白符),并在其中添加一个 \n

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

请参见 在线 Lua 演示,输出结果如下:

stringwith
newline
2021-04-04 16:59:01