[Rio-pm] Ajuda com split

Ole Peter Smith ole.ufg em gmail.com
Domingo Março 17 23:37:25 PDT 2013


if ($var=/^(\d+)\/(\S+)\s+(.+)/)
{
my ($num,$str1,$rest)=($1,$2,$3);
}

0le


2013/3/18 Guilherme Alves <guilhermeareal+riopm em gmail.com>

> Opa,
>
> eu fiz primeiro desta forma, pegando o primeiro espaço e depois separando
> o que tem o /
> Posso sim garantir que terá apenas uma barra.
> Depois mudei para separar primeiro pelo / e depois pelo espaço pois estava
> dando um problema estranho com a quebra de linha.
>
> Enfim. Resolvi o problema. Só que eu gostaria de aprender a fazer isto de
> uma maneira mais simples, onde eu passaria as 3 variáveis de uma só vez.
>
> Desta forma eu poderia adaptar fácil para outros casos.. onde por exemplo:
> Primeira entrada - 25/Bla
> Segunda Entrada de Texto  -  2/Tal
>
>
> Abs
>
>
> 2013/3/18 Ole Peter Smith <ole.ufg em gmail.com>
>
>> eu fazia o split(/\s+/,..) primeiro e depois o split(/[\\\/]/,...) depois
>> (ou melhor ainda: if (=~/[\\\/]/...).
>>
>> 0le
>>
>>
>> 2013/3/18 Ole Peter Smith <ole.ufg em gmail.com>
>>
>>> somente se vc pode garantir que nao ha mais '/' nos strings... caso sim,
>>> tera que tratar isso.
>>>
>>> 0le
>>>
>>>
>>> 2013/3/18 Guilherme Alves <guilhermeareal+riopm em gmail.com>
>>>
>>>> Caros Monges,
>>>>
>>>> venho aqui pedir ajuda de vocês para solucionar o meu problema.
>>>>
>>>> Tenho o seguinte arquivo de texto:
>>>> ----------DATA
>>>> 25/Bla Primeira Entrada
>>>> 2/Tal Segunda Entrada de Texto
>>>> ----------DATA
>>>>
>>>> Gostaria de fazer com que o texto fique com:
>>>>
>>>> $var1=25
>>>> $var2=Bla
>>>> $var3=Primeira Entrada
>>>>
>>>> e
>>>>
>>>> $var1=2
>>>> $var2=Tal
>>>> $var3=Segunda Entrada de Texto
>>>>
>>>> Para isto fiz um loop para o tratamento de cada linha. No momento uso 2
>>>> splits (um para o "/"e outro para o primeiro espaço em branco)
>>>>
>>>> ($var1,$lixo) = split("/",$linha);
>>>> ($var2,$var3) = split(/\s+/,$lixo,2);
>>>>
>>>> Isto funciona porém o $var3 está ficando estranho, possuindo quebras de
>>>> linhas e tal.
>>>>
>>>> Gostaria de saber se existe alguma maneira de eu fazer este split todo
>>>> de uma só vez, tipo:
>>>> ($var1,$var2,$var3) = split("/\s+",$linha,3);
>>>>
>>>>
>>>> Obrigado pela ajuda..
>>>>
>>>>
>>>>
>>>> --
>>>> Guilherme Alves
>>>>
>>>> Redes, Sites e Sistemas(RSS) - GRIS-DCC-UFRJ
>>>> Grupo de Resposta a Incidentes de Segurança
>>>> Conheça o GRIS em www.gris.dcc.ufrj.br
>>>>
>>>> _______________________________________________
>>>> Rio-pm mailing list
>>>> Rio-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>
>>>
>>>
>>>
>>> --
>>>                                             /////
>>>                                          ( O O )
>>> =================oOO==(_)==OOo=================
>>>             Every day and every hour, I'm Learning more
>>>           The more I Learn, the less I Know about before
>>>          The Less I know, the more I want to Look around
>>>              Diggin' deeper into Higher Ground...  UB40
>>>                                    .oooO Oooo.
>>> ==================(     )=(     )=====================
>>>                                      \  (     )  /
>>>                                       \_)   (_/
>>> ===============================================
>>>                         Ole Peter Smith, IME, UFG
>>>             http://olepeter.mat.ufg.br<http://www.mat.ufg.br/docentes/olepeter>  -
>>> ole at mat.ufg.br
>>> ===============================================
>>>                    Life sure is a Mystery to be Lived
>>>                       Not a Problem to be Solved
>>> ===============================================
>>>
>>
>>
>>
>> --
>>                                             /////
>>                                          ( O O )
>> =================oOO==(_)==OOo=================
>>             Every day and every hour, I'm Learning more
>>           The more I Learn, the less I Know about before
>>          The Less I know, the more I want to Look around
>>              Diggin' deeper into Higher Ground...  UB40
>>                                    .oooO Oooo.
>> ==================(     )=(     )=====================
>>                                      \  (     )  /
>>                                       \_)   (_/
>> ===============================================
>>                         Ole Peter Smith, IME, UFG
>>             http://olepeter.mat.ufg.br<http://www.mat.ufg.br/docentes/olepeter>  -
>> ole at mat.ufg.br
>> ===============================================
>>                    Life sure is a Mystery to be Lived
>>                       Not a Problem to be Solved
>> ===============================================
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> Guilherme Alves
>
> Redes, Sites e Sistemas(RSS) - GRIS-DCC-UFRJ
> Grupo de Resposta a Incidentes de Segurança
> Conheça o GRIS em www.gris.dcc.ufrj.br
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
                                            /////
                                         ( O O )
=================oOO==(_)==OOo=================
            Every day and every hour, I'm Learning more
          The more I Learn, the less I Know about before
         The Less I know, the more I want to Look around
             Diggin' deeper into Higher Ground...  UB40
                                   .oooO Oooo.
==================(     )=(     )=====================
                                     \  (     )  /
                                      \_)   (_/
===============================================
                        Ole Peter Smith, IME, UFG
            http://olepeter.mat.ufg.br<http://www.mat.ufg.br/docentes/olepeter>
 -
ole at mat.ufg.br
===============================================
                   Life sure is a Mystery to be Lived
                      Not a Problem to be Solved
===============================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20130318/daf1ce65/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm