2012-01-07 21:00:07 +01:00
|
|
|
function string.split(s, delim)
|
|
|
|
local start = 1
|
|
|
|
local results = {}
|
|
|
|
while true do
|
|
|
|
local pos = string.find(s, delim, start, true)
|
|
|
|
if not pos then
|
|
|
|
break
|
|
|
|
end
|
|
|
|
table.insert(results, string.sub(s, start, pos-1))
|
|
|
|
start = pos + string.len(delim)
|
2011-08-28 23:32:24 +02:00
|
|
|
end
|
2012-01-07 21:00:07 +01:00
|
|
|
table.insert(results, string.sub(s, start))
|
|
|
|
table.removevalue(results, '')
|
|
|
|
return results
|
2011-08-28 23:32:24 +02:00
|
|
|
end
|
|
|
|
|
2012-01-07 21:00:07 +01:00
|
|
|
function string.starts(s, start)
|
|
|
|
return string.sub(s, 1, #start) == start
|
2011-08-28 23:32:24 +02:00
|
|
|
end
|
2011-11-16 19:59:55 +01:00
|
|
|
|
2012-01-07 21:00:07 +01:00
|
|
|
function string.trim(s)
|
|
|
|
return string.match(s, '^%s*(.*%S)') or ''
|
2011-11-16 19:59:55 +01:00
|
|
|
end
|
2012-06-02 01:21:45 +02:00
|
|
|
|
|
|
|
function string.explode(str, sep, limit)
|
|
|
|
if(type(sep) ~= 'string' or tostring(str):len() == 0 or sep:len() == 0) then
|
|
|
|
return {}
|
|
|
|
end
|
|
|
|
|
|
|
|
local i, pos, tmp, t = 0, 1, "", {}
|
|
|
|
for s, e in function() return string.find(str, sep, pos) end do
|
|
|
|
tmp = str:sub(pos, s - 1):trim()
|
|
|
|
table.insert(t, tmp)
|
|
|
|
pos = e + 1
|
|
|
|
|
|
|
|
i = i + 1
|
|
|
|
if(limit ~= nil and i == limit) then
|
|
|
|
break
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
tmp = str:sub(pos):trim()
|
|
|
|
table.insert(t, tmp)
|
|
|
|
return t
|
|
|
|
end
|