[gelöst] HTTPMOD - Reihenfolge bei Mehrfachvorkommen

Begonnen von FHEm2005, 03 Januar 2018, 10:52:29

Vorheriges Thema - Nächstes Thema

FHEm2005

Mit dem Modul  HTTPMOD möchte ich ein Containerschiff monitoren. Die erforderlichen daten werden in userReadings geschrieben und in einem Log gesammelt.  Dazu benötige ich den Abfahrtshafen und den Zielhafen. Die dazugehörenden Elemente kommen zweimal vor.

Internetseite:
<span class="text-default text-darker">BRV</span> (Abfahrtshafen) und wenig später:
<span class="text-default text-darker">WHV</span> (Zielhafen)

Dankenswerterweise kommt die Klasse nur die beiden oberen Male vor. Die Regex
<span class="text-default text-darker">([A-Z]{3})</span>
liefert mir die Kennung des ersten Vorkommens, also Abfahrtshafen BRV.

Nun die Frage: Wie kommen ich an das zweite Vorkommen heran? Kömme ich überhaupt an das 2. Element ran?

Viele Grüße
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

mahowi

Den Regex ausweiten, bis die beiden Angaben unterscheidbar sind. Ich nehme an, im Kontext wird noch irgendwas vorkommen, was zur Unterscheidung beiträgt.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

KernSani

Ich nicht sehr erfahren mit HTTPMOD, aber sollte nicht ein /g modifier in einer RegEx alle vorkommen liefern?


Grüße,


Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

FHEm2005

Ich habe auf mahowi gehört und mir die Umgebung der beiden Vorkommen nochmal genau angesehen. Das zweite Vorkommen hatte noch einige Whitespaces. Diese waren letztendlich das notwendige Unterscheidungsmerkmal.

Hier die Lösung (die whitespaces sind fett):

<span class="text-default">([A-Z]{2})</span><span class="text-default text-darker">[A-Z]{3}</span></a>  /Das Abfahrtsland = 2 Großbuchstaben
<span class="text-default">[A-Z]{2}</span><span class="text-default text-darker">([A-Z]{3})</span></a>  /Der Abfahrtshafen = 3 Großbuchstaben

<span class="text-default">([A-Z]{2})</span><span class="text-default text-darker">[A-Z]{3}</span>\s+</a>  /Das Zielland = 2 Großbuchstaben
<span class="text-default">[A-Z]{2}</span><span class="text-default text-darker">([A-Z]{3})</span>\s+</a>  /Der Zielhafen = 3 Großbuchstaben

Danke an euch Beiden.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN