Götz Gottwald: regulärer Ausdruck "invertiert"

Beitrag lesen

Moin!

Hm - vielleicht so:
$daten =~ s/.*(\d°C).*//g;
$daten = $1;

Geht das nicht noch einfacher:
$daten =~ s/.*(\d°C).*/$1/e;

Option g fällt mal lieber weg (eine Temperatur pro Zeile sollte reichen, oder), dafür muß Option e dazu, damit das $1 direkt ausgewertet wird.

Sinn: Ersetze den gefundenen Suchausdruck "Viele Zeichen, eine einzelne Zahl, "°C" und dann wieder viele Zeichen durch den Wert der ersten Klammer (da sind die Zahl und "°C" drin).

  • Sven Rautenberg

Ich habe das jetzt so gemacht
$daten =~ s/.*\D(\d*°C)\D.*/$1/g;
Damit ich auch mehrstellige Zahlen bekomme, allerdings weiß ich nicht, warum das nicht mit negativen Zahlen geht, wenn ich das so mache
$daten =~ s/.*\D(-?\d*°C)\D.*/$1/g;
Das sollte doch eigentlich so gehen oder?

Götz