regularny vyraz na prehladavanie viac riadkov.

Marian Cavojsky cavojsky na soria-grey.sk
Pátek Listopad 30 12:33:08 MET 2001


On Fri, Nov 30, 2001 at 12:10:47PM +0100, Honza Pazdziora wrote:
> On Fri, Nov 30, 2001 at 11:52:02AM +0100, Marian Cavojsky wrote:
> > 
> > $date = $2.$1 if( $buffer =~ /Received:.*?\d?\d\s(\w{3})\s(\d{4})/m);
> > 
> > Neobjavi nic co by vyhovovalo. Vedel by mi niekto v nom najst chybu?
> 
> Tecka v regularnim vyrazu defaultne nematchuje na \n, takze to .*?
> nepreleze na dalsi radek, kde by to datum slo nalezt. Pouzijte /s.
> 

Nefunguje ani /s ani /ms

posielam program:
$date = '';
$buffer = '';
open FILEIN, "<".$ARGV[0] or die( "Error: '".$ARGV[0]."'");
while( <FILEIN>){
  if( /^From /){
    if( $date ne ''){
      $date = $2.$1 if( $buffer =~ /Received:.*?\d?\d\s(\w{3})\s(\d{4})/ms);
      open FILE, ">>".$ARGV[0].".".$date or die( "Error: '".$ARGV[0]."'");
      print "Append '".$ARGV[0].".".$date."'\n";
      print FILE $buffer;
      close FILE;
      $buffer = '';
    }
  }
  $buffer .= $_;
}
close FILEIN;

-- 
Marian Cavojsky <cavojsky @ soria-grey.sk>
Spravca siete, Soria & Grey s.r.o, reklamna agentura

Windows&Office jsou jako droga. Krasny a prijemny prvni dojem,
zvyknes si a nemuzes uz bez nich zit.
A pak zacnou prichazet vedlejsi ucinky ...



Další informace o konferenci Perl