Sollte nicht, da der Anfangsteil mit .* übersprungen wird.Johannes911 hat geschrieben: ↑19. Aug 2020 18:13 @Tokamak: da müsste ich davor noch die Position im Datenstrom herausfiltern
openhab, spezielle Fragen zu REGEX
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: openhab, spezielle Fragen zu REGEX
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: openhab, spezielle Fragen zu REGEX
REGEX für folgende Daten A:
bringt als Ergebnis 32,1 als String.
und
Daten B:
bringt als Ergebnis entweder AUS oder EIN als String
Damit scheinen meine REGEX-Probleme wohl gelöst
{ http="<[blnet
REGEX(.*\"pos365\">[ ]*([-]*[0-9]+,[0-9]).*)]" }
............................................Trigger
...............................................................0 bis n mal
.............................................................................0 bis n mal ein Minuszeichen
..................................................................................1 bis n mal Ziffern
...........................................................................................ein Komma
.............................................................................................eine Ziffer
...................................................................................................Rest entsorgen
funktioniert hier auch bei 5-stelligem Betriebsstundenzähler
<div id="pos32"> 0 Std</div>
Code: Alles auswählen
<div id="pos365"> 32,1 °C </div>
<div id="pos366">999,9 °C </div>
Code: Alles auswählen
{ http="<[blnet:10000:REGEX(.*\"pos365\">[ ]*([-]*[0-9]+,[0-9]).*)]" }
und
Daten B:
Code: Alles auswählen
<div id="pos190">AUS</div>
Code: Alles auswählen
{ http="<[blnet:30000:REGEX(\"pos190\">([A-Z][A-Z][A-Z]).*)]" }
Damit scheinen meine REGEX-Probleme wohl gelöst
{ http="<[blnet
............................................Trigger
...............................................................0 bis n mal
.............................................................................0 bis n mal ein Minuszeichen
..................................................................................1 bis n mal Ziffern
...........................................................................................ein Komma
.............................................................................................eine Ziffer
...................................................................................................Rest entsorgen
funktioniert hier auch bei 5-stelligem Betriebsstundenzähler
<div id="pos32"> 0 Std</div>
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: openhab, spezielle Fragen zu REGEX
Schon mal
ausprobiert?
Hier zielst du nur auf die Zahl vor dem °C ab, alles andere wird ignoriert.
Code: Alles auswählen
{ http="<[blnet:10000:REGEX(.*([-]*[0-9]+,[0-9]) °.*)]" }
Hier zielst du nur auf die Zahl vor dem °C ab, alles andere wird ignoriert.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: openhab, spezielle Fragen zu REGEX
ja, aber meine Lösung ist für mich universeller da sie auch bei den Stunden und Minuten funktioniert (Betriebsstundenzähler)
aber danke
Code: Alles auswählen
<div id="pos30"> 2 Std</div>
<div id="pos31">11 Min</div>
<div id="pos32"> 0 Std</div>
<div id="pos33">27 Min</div>
<div id="pos34"> 0 Std</div>
<div id="pos35"> 0 Min</div>
<
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: openhab, spezielle Fragen zu REGEX
Okay, verstehe.
Versuche es mal mit
oder kurz
Dann hast du jede Zahl vor dem Blank vor der Einheit und dem abschließenden </div> (es könnte sein, dass man das / in </div> escapen muss).
Versuche es mal mit
Code: Alles auswählen
{ http="<[blnet:10000:REGEX(.*([-]*[0-9]+[,0-9]*) .*</div>)]" }
Code: Alles auswählen
{ http="<[blnet:10000:REGEX(.*([-,0-9]+) .*</div>)]" }
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
-
- Beiträge: 81
- Registriert: 17. Aug 2020 08:02
Re: openhab, spezielle Fragen zu REGEX
ja, das klappt für _einen_ Wert, ich habe aber gut 200 verschiedene Werte pos100 - pos395, allerdings mit Lücken. Und da dann zwischen der posnnn und dem Wert diese stehen ...
Danke
Danke
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: openhab, spezielle Fragen zu REGEX
Hast du es mal ausprobiert?
Die von mir angegebene regex zäumt das Pferd von hinten auf.
Sie nimmt die Zahl, die am Ende vor dem Leerzeichen, das vor der Einheit wie etwa °C oder Std steht, unabhängig davon, was davor steht (bzw. sollte es nehmen, da ich es nicht ausprobiert habe). Alles, was vor der Zahl steht, wird ignoriert, sei es nun posXYZ oder  
Die von mir angegebene regex zäumt das Pferd von hinten auf.
Sie nimmt die Zahl, die am Ende vor dem Leerzeichen, das vor der Einheit wie etwa °C oder Std steht, unabhängig davon, was davor steht (bzw. sollte es nehmen, da ich es nicht ausprobiert habe). Alles, was vor der Zahl steht, wird ignoriert, sei es nun posXYZ oder  
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container