[Cascavel-pm] expressao regular

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Janeiro 22 15:18:30 PST 2008


Patty Silva wrote:
> Luis
> fazendo com expressao regular tb da certo.. so que nao estou conseguindo 
> recuperar o que nao casa com a expressao :)
> pode dar uma ajuda?
> 
> 1-> eu leio o arquivo byte a byte e insiro em uma variavel...

> my $acum;
> while( my $arq = <*.teste> )
> {
>        open(FH, "<$arq") or die("Unable to open file");
>        while((my $byte = getc(FH)) ne "")
>        {
>               $acum=$acum.$byte;
>     }
> }

Argh!!! O trecho do while(), acima, é feio. Alguém pode por favor 
escrever um bom leitor de arquivos inteiros para a Patty?

eu uso:

my $data;
while( my $filename = glob( q{*.teste} ) ){
   open my $file, $filename
     and do { local $/ = undef; $data .= <$file>; }
     and close $file
     or die $!;
}

> my @dados = ($acum =~ /(9\s?1\s?7\s?0\s?0\s?.*?\s?as?s\s?d\s?f)/gis);  
> -> aqui eu recupero os valores entre o 91700 e asdf e coloco no array
> porem eu quero recuperar os que nao " casa"  com a expressao
> como posso fazer isso?

:) eu estava pensando no mesmo problema, agora há pouco...
Você está indo bem, precisa apenas de um empurrãozinho. Leia o meu 
código (acabei de postar), e depois leia

http://perldoc.perl.org/perlre.html#'(?{-code-})'

(sim, eu sei, o finalzinho desta URL é estranho, mas é a funcionalidade 
que você está procurando... )

Putamplexos!
-- 
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}


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