Regexp bei Httpmod Zeilenumbruch entfernen

Begonnen von Mopedpaul, 12 Februar 2016, 21:53:49

Vorheriges Thema - Nächstes Thema

Mopedpaul

Hallo,
ich komme mit dem Regexp bei einer httpmod Abtrage nicht weiter. Alles funktioniert so weit gut, die Abragen funktionieren. Nur wird leider beim extrahieren der Werte ein CRLF mit übernommen. Das führt dann im Log dazu, dass hinter dem Logeintag nichts steht, sondern der Wert alleine in der nächsten Zeile.

Beispiel:
Buf- Auszug:
os58" > Zirkulationspumpe : AUS</div> <div id="pos59"

Aber tatsächlich steht da:
pos58" >crlfZirkulationspumpe :CRLFAUS</div>CRLF<div id="pos59"

Wenn ich das jetzt mit dem Regex :
reading20Regex  Zirkulationspumpe :([A-Z\s]+)
auslese, wird wohl das CRLF mit übernommen und führt dann zum oben genannten Fehler und sieht dann beim LIST <Device> so aus:
    2016-02-12 21:47:40   H_Error_Holz
OK
     2016-02-12 21:47:40   H_Error_Pumpe
AUS
     2016-02-12 21:27:06   H_Error_Sammel
AUS
     2016-02-12 21:47:40   UVR_G_Kessel
   47
     2016-02-12 21:47:40   UVR_Gaszaehlimpuls
24259
     2016-02-12 21:47:40   UVR_H_Kessel
1,34



Der eigentliche Wert steht immer eine Zeile tiefer. Habe viel versucht mit dem Regex komme aber nicht auf die Lösung.

Wie bekomme ich das CRLF bei dem Auslesen des Wertes ausgefiltert ????

Viele Grüsse
Mopedpaulchen
System:FHEM 5.7 auf Intel NUC  mit 1xCUL(433) ,1xCUNO V2 (868)mit Onewire,2xNetIO mit Onewire , HMLAN
,Max Cube , Philips Hue, webViewControll, MiLight
Devices:FS20,Onewire (Cuno+NetIO),Intertechno ,Homematic (Keymatic & TC & SD) Max ,Solaranlage 7,3kWP mit Solarlog 200

StefanStrobel

Hallo,

Du könntest zum Beispiel mit einer Reading20Expr und einer Perl Expression den von der Regex gelieferten String weiter bearbeiten.
Oder Du erlaubst das \s (das passt auf Space, Tab, CRLF etc.) nicht innerhalb der Klammern sondern nur davor / dahinter:

reading20Regex  Zirkulationspumpe :\s*([A-Z]+\s*


Gruss
    Stefan

Mopedpaul

Hallo Stefan,
vielen Dank für deine Hilfe, jetzt läuft es. Danke  :)  ;D

habe noch das - Zeichen mit in die Eckige Klammer aufgenommen, jetzt werden auch die negativen Aussentemperaturen übernommen.

Was erreiche ich mit dem \s* . Wenn ich dich richtig verstehe, werden alle Zeichen, die in der eckigen Klammer als gültig eingetragen werden, in den Wert übernommen, alle Einschränkungen vor und nach der Eckigen Klammer werden ausgefiltert. \s sind doch alle Sonderzeichen , das * bedeutet bliebig viele davon ?

Viele Grüsse
Uwe
System:FHEM 5.7 auf Intel NUC  mit 1xCUL(433) ,1xCUNO V2 (868)mit Onewire,2xNetIO mit Onewire , HMLAN
,Max Cube , Philips Hue, webViewControll, MiLight
Devices:FS20,Onewire (Cuno+NetIO),Intertechno ,Homematic (Keymatic & TC & SD) Max ,Solaranlage 7,3kWP mit Solarlog 200