FANDOM


-- Source: https://phabricator.wikimedia.org/diffusion/ELUA/browse/master/includes/engines/LuaCommon/lualib/mw.text.lua local p = {}

function p.gsplit( text, pattern, plain )

 local s, l = 1, text:len()
 return function ()
   if s then
     local e, n = text:find( pattern, s, plain )
     local ret
     if not e then
       ret = text:sub( s )
       s = nil
     elseif n < e then
       -- Empty separator!
       ret = text:sub( s, e )
       if e < l then
         s = e + 1
       else
         s = nil
       end
     else
       ret = e > s and text:sub( s, e - 1 ) or 
       s = n + 1
     end
     return ret
   end
 end, nil, nil

end

function p.split( text, pattern, plain )

 local ret = {}
 for m in p.gsplit( text, pattern, plain ) do
   ret[#ret+1] = m
 end
 return ret

end

function p.trim( s, charset ) charset = charset or '\t\r\n\f ' s = s:gsub( '^[' .. charset .. ']*(.-)[' .. charset .. ']*$', '%1' ) return s end

return p

Community content is available under CC-BY-SA unless otherwise noted.