使用双分隔符拆分字符串

Splitting a string with a double delimiter

我正在尝试了解如何使用这种格式拆分 lua 中的字符串

hello - mynameis - jeff

我只是想得到名字"jeff"。分隔符将是 -</code>。 这是我实际尝试过的:</p> <pre><code>local result = string.gmatch(line, "[-\s]+")

这是行不通的。我该怎么做?

其中一个解决方法是用您拥有的内容中未使用的字符替换所有“-”,然后使用简单的取反字符 class 和 $ 字符串结尾锚点:

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),但您可以选择另一个您确定在要解析的内容中会丢失的字符。