Regex (Modulbaustein)

Eine Zeichenkette auftrennen oder auf bestimmten Inhalt prüfen

Verfügbar ab Firmware Version 4.1 Insider Preview 1

Inhalt dieser Seite
richtet sich an
Experten

 

 

Protokolle wie MQTT und HTTP-/Rest-API übergeben oft Zeichenketten, die mehrere Daten gleichzeitig enthalten. Mit diesem RegEx-Modulbaustein können aus einer Zeichenfolge die darin enthaltenen Daten (= andere Zeichenketten) durch eine Filtersuche (sog. “reguläre Ausdrücke”) extrahiert werden. Dieser Modulbaustein ist damit unter anderem auch für das Zerlegen von XML geeignet.

Insofern die extrahierte Zeichenketten Zahlen enthalten, sind als lesbarer Text kodiert, jedoch nicht als binärer Zahlenwert. Im Timberwolf Server können mathematische Operationen nur mit binär kodierten Zahlenwerten ausgeführt werden, daher ist eine Wandlung von Zeichenkette (“String”) in eine Ganzzahl oder eine Fließkommazahl meist sinnvoll. Hierfür stehen separate Modulbausteine für entsprechende Wandelung zur Verfügung.

Syntax

["Regex","$In","$Expression", "$HasMatch", "$Match", "$Group1", "$Group2", "$Group3", "$Group4", "$Group5"]

Funktion

Die Eingangszeichenkette "$In" wird anhand des regulären Ausdrucks (“Regex”) in "$Expression" verarbeitet. Das Ergebnis wird in den Ausgangsleveln bereitgestellt.

Eingänge

  • "$In" Zeichenkette auf die der reguläre Ausdruck angewendet werden soll (String)

  • "$Expression" regulärer Ausdruck im PCRE2 Format (String)

Ausgänge

  • $HasMatch Wahrheitswert der aussagt, ob der reguläre Ausdruck für die übergebene Zeichenkette zu einem Ergebnis geführt hat (zu filternde Zeichenkette wurde in der Quel-Zeichenkette gefunden)

  • $Match Der Teil der übergebene Zeichenkette, welcher zum Ergebnis geführt hat

  • $Group1 bis $Group5 Über Gruppierungskonstrukte im regulären Ausdruck können mehrere Abschnitte der Quell-Zeichenkette parallel ausgefiltert und diese Ergebnisse von bis zu fünf separaten Gruppen über die entsprechenden Ausgänge übergeben werden.

Besonderheiten

  • Es werden nur Zeichenketten mit 8 Bit pro Zeichen korrekt verarbeitet (ASCII, ANSI, UTF-8)

  • Die Regulären Ausdrücke können auf https://regex101.com/ (Extern, Englisch) entwickelt und getestet werden. Der Flavor ist auf PCRE2 (PHP >=7.3) und die Function auf Match zu stellen.
    Die “Copy to clipboard” Funktion kopiert zusätzlich die Trenner (Standard /) und die Optionen, diese werden von Modulbaustein nicht erwartet. Kopieren Sie nur den regulären Ausdruck für den Eingang in diesen Logik-Modul.

  • Für die korrekte Funktion des Moduls müssen die Anzahl der verarbeitbaren Zeichen (Länge der Zeichenkette) für JEDEN der beteiligten String Level auf den jeweiligen Anwendungsfall angepasst werden.
    Sollte die maximal erlaubte Länger für einen Level zu kurz gewählt worden sein, dann wird die jeweilige Zeichenkette bei der Ein- bzw. Ausgabe aus dem Modul abgeschnitten, was zu unerwarteten Ergebnissen führen kann.
    Eine hohe Anzahl von Leveln mit langen möglichen Zeichenketten führt zu einem erhöhtem Ressourcen Verbrauch im Speicher und bei der Bearbeitung, selbst wenn diese Level nicht mit Inhalt gefüllt werden.

  • Werden Zahlen in Zeichenketten über diese Regex-Funktion ermittelt, dann können diese über die separaten Module STR->INT und STR->FLOAT aus der Textkodierung (Level String) in eine Zahlenkodierung (Level Integer oder Level Float) umgewandelt werden.

Anwendungen

  • XML Daten verarbeiten

  • Werte aus Loxone Webservices verarbeiten

  • Zeichenketten auftrennen

  • Komplexe Statusrückmeldungen auf Fehler prüfen

Beispiele

 

 

Entsprechendes Logik-Modul

 

 

2019 - 2024 by Elaborated Networks GmbH / Impressum / Datenschutzerklärung