Filtern mit Regexp

Sanic

Erfahrenes Mitglied
Hallo :)
Ich habe folgendes Problem:

Mithilfe von Perl lese ich eine Textdatei ein.
Jetzt möchte ich in den vorhandenen Strings nach Parametern suchen.
Ein Beispiel:
Eine Zeile aus der Textdatei sieht so aus:

test=0 parameter1=22 nocheinparameter=0

Nun möchte ich mir von "test" den Wert nach dem "=" anzeigen lassen, also "0".
Ist regexp in diesem Falle die beste Lösung oder gibt es noch einfachere Methoden ? :)

Danke für eure Hilfe !
 
Also wenn deine Parameterliste statisch ist dann is das mit regexp schon recht gut.
Ich poste mal aus Spaß n bisl Code falls hilft:
Code:
foreach(@lines){
 if(/test=(\d+)\sparameter1=(\d+)\snocheinparameter=(\d+)/){
  print "test=$0\n";  
  print "parameter1=$1\n";  
  print "nocheinparameter=$2\n";  
 }
}

Also schwierig ist das nicht. Denke nich dasses allzu einfachere Methoden dafür gibt. Höchsten vielleicht irgendne sub oder so die dir jemand schreibt(wenn des selbst machst isses mehr aufwand *g*) mit dem dateinamen als argument die dir die parameter in ner liste liefert wo dann in jedm eintrag n hash für die einzelnen parameter sind. naja wie manns will. mit regexp is schon ganz ok
 
Davon ausgegangen, das die Paramter alle mit nem Leerzeichen getrennt sind, und die schlüssel wert paare alle durch = getrennt sind, und unmittelbar aneinander gereiht sind, dann funktioniert das hier wohl bedeutend schneller als der RegExp:

Code:
foreach(split(/ /, $zeile)) {
   my ($key, $value) = split(/=/, $_);
   print "Der Paramter $key hat den Wert $value\n";
}
 

Neue Beiträge

Zurück