Thread Quellcodeverarbeitung mit Perl
(10 answers)
Opened by Haselnuss992 at 2018-06-28 16:31
Willkommen.
Da Du um Verbesserungsvorschläge gebeten hast: - Vermeide "Bareword" Filehandles, vor allem generische mit Allerweltsnamen wie FILE, nutze besser lexikalische Filehandles (Variablen mit my deklariert) - und verwende am Besten die 3-Argument-Form des open(), d.h. trenne den Modus vom Dateinamen - lass Dir beim Fehler am besten auch gleich die Systemmeldung (in $!) ausgeben Zusammengefasst: Code (perl): (dl
)
1 2 3 4 5 6 open my $fh, '<', $filename or die "open($filename, ro) failed: $!"; while ( my $line = <$fh> ) { ... } close $fh; Zur Aufgabe: Eigentlich ist HTML nicht regulär genug, um es sauber mit Regex zu parsen. Zum Extrahieren einzelner Punkte kann es noch gut gehen. Ist immer ein Abwägen zwischen "Was will man", "Wie zuverlässig sind die Daten?" und "Wie zuverlässig will man es?". Wenn man das im Hinterkopf behält, kann man es versuchen; oder wenn es mehr wird, gleich auf einen richtigen Parser zurück greifen. ungetesteter Vorschlag (ohne Parser, mit Regex) Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 open my $fh, '<', $filename or die "open($filename, ro) failed: $!"; while ( my $line = <$fh> ) { if ( $line =~ m/<tt>([^<]+)</tt> ) { print "Match: $1\n"; } } close $fh; Das genauere Verarbeiten (vom Treffer in $1) musst Du dann entsprechend selber einbauen. meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |