Lua如何保留字符串的开头和结尾删除中间部分

Lua如何保留字符串的开头和结尾删除中间部分,lua,Lua,所以我有一个字符串,它的内容可以是动态的,如下所示,我正在努力寻找一种方法来删除中间部分,但将所有内容保留在开头和结尾 字符串内容(列表,因为它是动态的,可以更改分配,但字符串的特定元素和顺序始终相同): 我想要的输出: /media/123/keepthis /media/1234/keepthis /media/12345/keepthis 我的代码: local string = "/media/123remove/lalalaja" string = string:gsub(".*me

所以我有一个字符串,它的内容可以是动态的,如下所示,我正在努力寻找一种方法来删除中间部分,但将所有内容保留在开头和结尾

字符串内容(列表,因为它是动态的,可以更改分配,但字符串的特定元素和顺序始终相同):

我想要的输出:

/media/123/keepthis
/media/1234/keepthis
/media/12345/keepthis
我的代码:

local string = "/media/123remove/lalalaja"
string = string:gsub(".*media-gallery/([0-9])","")
print(string)

如果您可以假设每个输入字符串都以
/media/
开头,然后是一些数字,最后是
/
,然后是多个非斜杠字母,那么您可以为整个字符串构造一个模式,将其分为要保留的片段和要丢弃的片段:

local keepBefore, discard, keepAfter = str:match "^(/media/%d+)(.*)(/[^/]+)$"
local newStr = keepBefore .. keepAfter

您的代码不起作用输入:3:尝试串联一个nil值(本地“keepBefore”)我还有一个问题,即在/media/text之前,我可能需要保留任何我需要保留的内容。@C0nw0nk它适用于给定的所有示例(当所述假设成立时,它就起作用)。你有什么输入看起来不像你已经解释过的输入?
local keepBefore, discard, keepAfter = str:match "^(/media/%d+)(.*)(/[^/]+)$"
local newStr = keepBefore .. keepAfter