Lua中如何删除字符串的最后一行?

Jst*_*ion 5 lua world-of-warcraft

我在魔兽世界中使用Lua。

我有这个字符串:

"This\nis\nmy\nlife."
Run Code Online (Sandbox Code Playgroud)

所以打印时,输出是这样的:

This
is
my
life.
Run Code Online (Sandbox Code Playgroud)

如何将除最后一行之外的整个字符串存储在新变量中?

所以我希望新变量的输出是这样的:

This
is
my
Run Code Online (Sandbox Code Playgroud)

我希望 Lua 代码找到最后一行(无论字符串中有多少行),删除最后一行并将剩余行存储在新变量中。

谢谢。

Jst*_*ion 4

所以我发现 Egor Skriptunoff 在评论中的解决方案确实非常有效,但我无法将他的评论标记为答案,所以我将把他的答案放在这里。

这将删除最后一行并将剩余行存储在新变量中:

new_str = old_str:gsub("\n[^\n]*$", "")
Run Code Online (Sandbox Code Playgroud)

如果最后一行末尾有一个新行标记,Egor 将此作为解决方案发布:

new_str = old_str:gsub("\n[^\n]*(\n?)$", "%1")
Run Code Online (Sandbox Code Playgroud)

虽然这会删除第一行并将剩余行存储在新变量中:

first_line = old_str:match("[^\n]*")
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,叶戈尔。