|
|
||
|
Leo Razoumov wrote:
In any case it is NOT equivalent to a split operation (Ruby, Pearl) that splits on a matching pattern. To see the difference, choose a delimiter to be a string of several characters like delim="SEP". The strsplit() implementation above will skip all occurrences of letters S,E,P anywhere in the string which is very different from splitting on a single string "SEP".
You're right. I rarely split on anything other than commas or semicolons. Here is a version that seems to handle the perl examples I could find and was a little shorter than other samples I saw:
function strsplit(s, delim)
local t = {}
local pat = "(.-)" .. delim .. "(.+)"
local c1, c2
repeat
c1, c2 = string.match(s, pat)
t[#t+1] = c1 or s
s = c2
until c1 == nil
return t
end
Not that this whole thing was really about string splitting anyways ...