FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: franky08 am 20 Oktober 2019, 19:04:46

Titel: [gelöst] mal wieder regex, wie?
Beitrag von: franky08 am 20 Oktober 2019, 19:04:46
Da ich seit Ewigkeiten nichts mehr mit Perl oder regex zu tun hatte, habe ich nun wohl auch noch die paar Grundlagen vergessen die ich mal kannte.
my $stday = ReadingsVal("Statistik_dummy","Tag",0);
my @daten = split(/ /,$stday);

my $tag_spl = $daten[0]; #tag

fhem "setreading Statistik_dummy Tag_split $tag_spl";


damit splitte ich solch einen Datensatz auf:
8.76589999999999: 00:00:00 8.76589999999999_Count: 1 (since: 2019-10-20_17:19:26)

Ergebnis ist dann:
Tag_split 8.76589999999999:

Das hätte ich gerne ohne den störenden ":"

Irgendwie bekomme ich den nicht "abgeschnitten", bin da aber auch schon seit längeren nicht mehr in der Materie.

VG franky08
Titel: Antw:mal wieder regex, wie?
Beitrag von: Beta-User am 20 Oktober 2019, 19:26:45
Versuch's mal mit
my $tag_spl = chop($daten[0]); #tag
Titel: Antw:mal wieder regex, wie?
Beitrag von: DS_Starter am 20 Oktober 2019, 19:27:10
Ich hätte folgendes anzubieten:


my $stday = ReadingsVal("Statistik_dummy","Tag",0);
$stday      = s/(\d+.\d+):\s+.*/$1/;
fhem "setreading Statistik_dummy Tag_split $stday";


Nicht getestet, aber sollte tun.

Grüße,
Heiko
Titel: Antw:mal wieder regex, wie?
Beitrag von: KölnSolar am 20 Oktober 2019, 19:31:17
oder anstatt
Zitatmy @daten = split(/ /,$stday);
my @daten = split(/:/,$stday);
(wobei Heiko natürlich die schönere Lösung präsentiert) :)
Titel: Antw:mal wieder regex, wie?
Beitrag von: franky08 am 20 Oktober 2019, 19:44:52
my @daten = split(/:/,$stday);

das hatte ich schon, habe mich aber vertippt und noch ein Leerzeichen mit drinne und daran ist es wohl gescheitert :-(

Danke für die Tipp`s