$muster = "(\\d{2})\\.(\\d{2})\\.(\\d{2}).+?font-size-14.+?(\\d+\\.\\d+,\\d+|\\d+\\.\\d+|\\d+,\\d+|\\d+).+?font-size-14.+?(\\d+\\.\\d+,\\d+|\\d+\\.\\d+|\\d+,\\d+|\\d+).+?font-size-14.+?(\\d+\\.\\d+,\\d+|\\d+\\.\\d+|\\d+,\\d+|\\d+).+?font-size-14.+?(\\d+\\.\\d+,\\d+|\\d+\\.\\d+|\\d+,\\d+|\\d+).+?font-size-14.right.+?(\\d+\\.\\d+\\.\\d+|\\d+\\.\\d+|\\d+).+?right...(\\d+,\\d+|\\d+).+?(M|T)";
while ($seite =~ /$muster/g) {
1 2 3 4 5
$daten[6] = "$8"; my $mitpunkt = $daten[6]; $mitpunkt =~ s/\.//g; $daten[6] = $mitpunkt; $daten[7] = "$9";
Use of uninitialized value $9 in string at update-sonstige.pl line 129.
2020-12-25T10:41:15 qwe123qweSoweit ich erkennen kann, funktioniert durch die Substitution die Mustererkennung im Rest der Seite nicht mehr.
1 2 3
while (my @digits = $seite =~ /$muster/g) { # In diesem while-Block sollte $seite gekürzt werden, sonst # riecht das nach Endlosschleife
1 2 3 4 5
$daten[6] = $digits[7]; my $mitpunkt = $daten[6]; $mitpunkt =~ s/\.//g; $daten[6] = $mitpunkt; $daten[7] = $digits[8];
2020-12-25T14:14:12 qwe123qweVielen Dank !
Das ist genau das was ich gebraucht habe. Ich hab nicht gewußt, daß man so eine Trefferliste bekommt. Und genau danach hab ich gesucht.
1 2 3
while ($seite =~ /$muster/g) { # Hier gibt's keine Endlosschleife! my @digits = @{^CAPTURE}; # siehe perldoc perlvar
2020-12-25T14:14:12 qwe123qweIch weiß, daß die Mustererkennung ziemlich hässlich aussieht, mit Regex steht ich auf Kriegsfuß. Aber ich bin schon froh, daß ich da überhaupt ein Muster hinbekommen habe, das funktioniert. Bin aber sehr offen für Verbesserungsvorschläge.
$muster = qr/bla bla/x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
$muster = qr/(\d{2})\.(\d{2})\.(\d{2}) # 12.34.56 = $1,$2,$3 .+?font-size-14.+? # mittelalterliches HTML ( \d+\.\d+,\d+| # 123.456,789 oder \d+\.\d+| # 123.123 oder \d+,\d+| # 123,123 oder \d+ # 123 ) # = $4 .+?font-size-14.+? # mehr mittelalterliches HTML ( \d+\.\d+,\d+| # 123.456,789 oder \d+\.\d+| # 123.456 oder \d+,\d+| # 123,456 oder \d+ # 123 ) # = $5 .+?font-size-14.+? # wieder mittelalterliches HTML ( \d+\.\d+,\d+| # 123.456,789 oder \d+\.\d+| # 123.456 oder \d+,\d+| # 123,456 oder \d+ # 123 ) # = $6 .+?font-size-14.+? # nochmal mittelalterliches HTML ( \d+\.\d+,\d+| # 123.456,789 oder \d+\.\d+| # 123.456 oder \d+,\d+| # 123,456 oder \d+ # 123 ) # = $7 .+?font-size-14.right.+? # uff. Bald geschafft. right? # Obacht: Die letzte Gruppe ist anders. ( \d+\.\d+\.\d+| # 123.123.123 oder \d+\.\d+| # 123.123 oder \d+ # 123 ) # = $8 .+?right... # right again... (\d+,\d+|\d+) # 123,123 oder 123 = $9 .+?(M|T) # weiter bis zum nächsten M oder T ($10) /x;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
my $old_html = qr/.+?font-size-14.+?/; my $ziffern = qr/\d+\.\d+,\d+| # 123.456,789 oder \d+\.\d+| # 123.123 oder \d+,\d+| # 123,123 oder \d+ # 123 /x; $muster = qr/(\d{2})\.(\d{2})\.(\d{2}) # 12.34.56 = $1,$2,$3 $old_html ($ziffern) # = $4 $old_html ($ziffern) # = $5 $old_html ($ziffern) # = $6 $old_html ($ziffern) # = $7 .+?font-size-14.right.+? # uff. Bald geschafft. right? # Obacht: Die letzte Gruppe ist anders. ( \d+\.\d+\.\d+| # 123.123.123 oder \d+\.\d+| # 123.123 oder \d+ # 123 ) # = $8 .+?right... # right again... (\d+,\d+|\d+) # 123,123 oder 123 = $9 .+?(M|T) # weiter bis zum nächsten M oder T ($10) /x;