此功能允许您从两个字符串分隔符之间提取文本:
function get_text (str, init, term)
local _, start = string.find(str, init)
local stop = string.find(str, term)
local result = nil
if _ and stop then
result = string.sub(str, start + 1, stop - 1)
end
return result
end
示例互动:
> msg = "Play5"
> get_text(msg, "", "")
Play
> get_text(msg, "", "")
Play5
这是对上述功能的修改,允许nil参数init或term。如果init为nil,则文本将被提取到term分隔符。如果term为nil,则会将文本从init之后提取到字符串的末尾。
function get_text (str, init, term)
local _, start
local stop = (term and string.find(str, term)) or 0
local result = nil
if init then
_, start = string.find(str, init)
else
_, start = 1, 0
end
if _ and stop then
result = string.sub(str, start + 1, stop - 1)
end
return result
end
示例互动:
> msg = "Play5"
> get_text(msg)
Play5
> get_text(msg, nil, '')
Play
> get_text(msg, '')
5
> get_text(msg, '', '')
Play