Siechfred: Reguläre ausdrücke, strings beschneiden

Beitrag lesen

Tag ingo.

ich suche nach dem Ausdruck und will angefangen vom Ausdruck den Rest der Zeile in eine Datei schreiben.

So könnte es gehen:

$muster = '(\w{3}\s{1}\d{1,2}\s{1}\d{2}:\d{2}:\d{2}.*?)$';
$fh = new FileHandle;
if ( $fh->open( $ARGV[0] , "<" ) ) {
   while ( my $inLine = $fh->getline ) {
      if ($inLine =~ m/$muster/) {
         @ergebnis = $inLine =~ m/$muster/;
         print @ergebnis;
      }
   }
}

Wichtig sind die Änderungen im RegExp: die Klammerung und das "Einfangen" der restlichen Zeile bis zum Ende (Begrenzer "$"). Siehe auch Reguläre Ausdrücke: Listen-Kontext. Das Ganze geht aber bestimmt auch anders und/oder eleganter :)

[dsf 3.6]
Siechfred

--
»Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«