用双分隔符拆分字符串

时间:2016-04-12 19:27:41

标签: string lua lua-patterns

我试图了解如何使用此格式分割lua中的字符串

hello - mynameis - jeff

我只是想得到这个名字" jeff"。分隔符为-。 这是我实际尝试过的:

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

哪个不起作用。我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

请参阅Lua IDEONE demo

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

我使用了STX控制字符(\x02),但您可以选择另一个您确定要在解析的内容中丢失的字符。