[patch] userReadings akzeptiert kein '.' im Namen

Begonnen von Creideiki, 28 September 2014, 10:19:19

Vorheriges Thema - Nächstes Thema

justme1968

die regex ist falsch. (oder zumindest von der perl version abhängig)

so ist es korrekt:-      my $regexi= '\s*([\w-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
+      my $regexi= '\s*([\w.-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
oder so:-      my $regexi= '\s*([\w-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
+      my $regexi= '\s*([\w\-.]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';


es gibt noch ein paar andere permutationen die korrekt sind.

in der original version muss das - nur deshalb nicht maskiert werden weil es das letze zeichen innerhalb der eckigen klammern ist. der vorschlag von oben hängt den . hinter das -. dadurch wird es zum range operator. also den . entweder vor das - oder das - maskieren damit es seine wörtliche bedeutung bekommt/behält.

den . muss man innerhalb der eckigen klammern nicht maskieren.

regex101.com ist hier auch falsch oder zumidest nicht streng genug.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

hexenmeister

Damit my $regexi= '\s*([\w.-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*'; ist die Warnung schon al weg....

rudolfkoenig

my $regexi= '\s*([\w.-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';

Diese Variante wurde wg. der Demokratischen Mehrheit uebernommen.

Ok, ich habe es diesmal auch _mit gesetzten userReadings_ getestet.
Man sieht, dass ich normalerweise kein userReadings verwende.

Creideiki

Hm, sehr seltsam... ich hatte das mit userReadings getestet und hat auch funktioniert. Aber ich muß zugeben, dass ich gleich die geänderte Reihenfolge hätte nehmen sollen. Ich habe mich da auch auf regex101.com verlassen.

Entschuldigung.