使用双分隔符拆分字符串

我正在尝试理解如何在lua中使用以下格式拆分字符串

hello - mynameis - jeff

我只想获取姓名"jeff"。分隔符将为"-"和"``"。 这是我实际尝试的内容:

local result = string.gmatch(line, "[-\s]+")

这无效。我该如何做?

点赞
用户3832970
用户3832970

一个变通方法可以是将所有的“ - ”替换为在您拥有的内容中未使用的字符,然后使用简单的否定字符类和“ $”结尾字符串锚获取最后一部分:

local example = "hello - mynameis - jeff"
example = string.gsub(example, " %- ", "\x02")
local result = string.match(example, "[^\x02]+$")
print(result)

请参见Lua IDEONE演示

使用“ - ”,所有的_ space +-+space _子字符串都将被替换为临时字符,然后只有最后一个临时字符后的子字符串才会与[^\x02]+$模式匹配。

我使用了“ STX”控制字符(\x02),但您可以选择在解析内容中确保不存在的其他字符。

2016-04-12 20:23:22