[Rio-pm] Performance de regex

Neilson Lima neilsonlima em gmail.com
Quarta Março 17 15:44:53 PDT 2010


2010/3/17 Fernando Oliveira <fernandocorrea em gmail.com>

> Soli, mas ele faz isso em ambos os casos...
> Parece q ele quer excluir as linhas q comecem com string1 e q contenha (não
> q comece) com string2.
>
> é Isso mesmo MM?
>

@MM -> ...começando com "string1" ou contendo "string2".
MM usou OU na frase

no segundo exemplo além de começar com "string1" tem que conter "string2" na
linha, ele usa  '&&', agora se olhar a parte da frase que ele digitou tem
que usar '||', certo?





>
>
> Just another Perl Hacker,
> Fernando (SmokeMachine)
> http://perl-e.org
>
>
> 2010/3/17 Solli Honorio <shonorio em gmail.com>
>
> Marcos,
>>
>> Vc teve o mesmo resultado no conteúdo final ? Pois para mim parece coisas
>> bem diferentes, no segundo caso vc só está imprimindo se ambas as condições
>> forem verdadeiras, então se a linha não começar com string1 ele pula para a
>> próxima !
>>
>> Solli M. Honório
>>
>> Em 17 de março de 2010 19:10, Marcos Machado <listas em istf.com.br>escreveu:
>>
>> Queridos,
>>>
>>> Precisei fazer uma alteração em um arquivo texto (bem grande)
>>> excluindo todas as linhas começando com "string1" ou contendo
>>> "string2".
>>>
>>> Meu primeiro chute foi:
>>>
>>> <code>
>>> cat OLD.log | perl -nle 'print if !/^string1|string2/;' > NEW.log
>>> </code>
>>>
>>> Levou 7 minutos. Depois testei com:
>>>
>>> <code>
>>> cat OLD.log | perl -nle 'print if !/^string1/ && !/string2/;' > NEW.log
>>> </code>
>>>
>>> O mesmo arquivo resultou, mas em apenas 30 segundos!
>>>
>>> Esse OU dentro da regex é mesmo muito mais lento ou fiz besteira?
>>>
>>> []s, MM
>>>
>>
-- 
Atenciosamente,
Neilson P. Lima
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20100317/75226396/attachment.html>


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