Ir para conteúdo
Entre para seguir isso  
Socket

Função string.explode

Recommended Posts

Socket    0
Socket

Bem, hoje um amigo me pediu uma função apenas para pegar tudo que estava entre as vírgulas, como não tava com saco de procura a string.explode, fui fazer um simples pattern, quando terminei vi uma ótima função.

 

function string.explode(self, sep)
   local result = {}
   self:gsub("[^".. sep .."%s*]+", function(s) table.insert(result, s) end)
   return result
end

 

Ela é executada da mesma maneira que a string.explode do colandus, porém é visivelmente menor, quem quiser ver a do Colandus.

 

[spoiler=Colandus]

function string.trim(str)
-- Function by Colandus
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end

function string.explode(str, sep) 
-- Function by Colandus
local pos, t = 1, {}
if #sep == 0 or #str == 0 then return end
for s, e in function() return string.find(str, sep, pos) end do
	table.insert(t, string.trim(string.sub(str, pos, s-1)))
	pos = e+1
end
table.insert(t, string.trim(string.sub(str, pos)))
return t
end

 

 

 

Compartilhar este post


Link para o post
esau    0
esau

Socket so postou pra humilhar mesmo '-'

mesmo assim tá melhor mesmo rarara

Compartilhar este post


Link para o post
Notorious    1
Notorious

Rere muito bom, principalmente o jeito que você usou a função dentro do gsub

Parabéns :fail:

Compartilhar este post


Link para o post
Iago Felipe    5
Iago Felipe

parabéns mano :)

ela fica mais compacta, scripts compactos, sem enrolação e etc, ficam bem mais visível e facil de ler o script.

Compartilhar este post


Link para o post
Mock    32
Mock

eu ja pensei mesmo em usar ela pelo segundo param. so que depois que descobri as patterns eu nem tive impolgação p faze. fico otimo xD

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×