Regulärer Ausdruck: Unterschied zwischen den Versionen

Aus FHEMWiki
(Erste Version der Seite)
 
KKeine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Anwendung in Fhem ==
== Anwendung in Fhem ==
Diese Notwendigkeit ergibt sich beispielsweise bei der Definition eines [[FileLog]] (Filtern der Ereignisse) oder um aus einem mit [[HTTPMOD]] "gewonnenen" Datenstrom die relevanten Daten zu Weiterverarbeitung zu isolieren.
Die Notwendigkeit der Verwendung regulärer Ausrücke ergibt sich beispielsweise bei der Definition eines [[FileLog]] (Filtern der Ereignisse) oder um aus einem mit [[HTTPMOD]] "gewonnenen" Datenstrom die relevanten Daten zu Weiterverarbeitung zu isolieren.


== Werkzeuge zur Erstellung Regulärer Ausdrücke ==
== Werkzeuge zur Erstellung Regulärer Ausdrücke ==
Zeile 20: Zeile 20:


=== Erläuterung eines Regulären Ausdrucks ===
=== Erläuterung eines Regulären Ausdrucks ===
[[Datei:RegExp_TestExplain.png|mini|400px|right|Regular Expression Tester, Execute]]
[[Datei:RegExp_TestExplain.png|mini|400px|right|Regular Expression Tester, Explain]]
Der oben beschriebene ''Regular Expression Tester'' bietet auch eine "Explain" Funktion. Ebenfalls am obigen Beispiel wird im Bildschirmfoto wieder dargestellt, wie die einzelnen Bestandteile des regulären Ausdrucks sich auswirken.
Der oben beschriebene ''Regular Expression Tester'' bietet über die Schaltfläche ''Explain'' auch eine Erläuterungsfunktion. Ebenfalls am obigen Beispiel wird im Bildschirmfoto wieder dargestellt, wie die einzelnen Bestandteile des regulären Ausdrucks sich auswirken.
 


== Beispiele ==
== Beispiele ==
Es finden sich z.B. im Fhem Forum viele, teilweise recht komplexe Beispiele für die Verwendung von regulären Ausdrücken, unter anderem
Es finden sich hier und im Fhem Forum viele, teilweise recht komplexe Beispiele für die Verwendung von regulären Ausdrücken, unter anderem
* {{Link2Forum|Topic=22554|LinkText=Benzinpreismonitor}}
* auf der Seite [[Spritpreismonitor]]
* in der Beschreibung des Moduls [[HTTPMOD]]
* in der Beschreibung des Moduls [[HTTPMOD]]
* auf der Seite [[Wetter und Wettervorhersagen]]
* auf der Seite [[Wetter und Wettervorhersagen]]
* ...
* ...

Version vom 29. September 2015, 09:09 Uhr

Ein Regulärer Ausdruck (englisch regular expression, daher auch häufig als RegExp oder Regex abgekürzt; siehe auch Wikipedia) wird im Kontext von Fhem häufig benutzt, um aus Zeichenketten anhand von Mustern und Regeln einzelne Teile zu extrahieren.

Anwendung in Fhem

Die Notwendigkeit der Verwendung regulärer Ausrücke ergibt sich beispielsweise bei der Definition eines FileLog (Filtern der Ereignisse) oder um aus einem mit HTTPMOD "gewonnenen" Datenstrom die relevanten Daten zu Weiterverarbeitung zu isolieren.

Werkzeuge zur Erstellung Regulärer Ausdrücke

Insbesondere bei nur gelegentlicher Erstellung von Regulären Ausdrücken können diverse im Internet verfügbare "Tester" oder "Analyzer" wertvolle Hilfe leisten.

Regular Expression Tester

Regular Expression Tester, Execute

Exemplarisch wird hier der Regular Expression Tester von Chris Nielsen vorgestellt (insbesondere, weil er auch eine "Explain" Funktion bietet, mit deren Einsatz die einzelnen Bestandteile des zu testenden regulären Ausdrucks erläutert werden). Es gibt eine große Vielfalt anderer Internetseiten, die sich mit der gleichen Thematik befassen.

Anhand des nebenstehenden Bildschirmfotos soll an einem einfachen Beispiel die generelle Funktionsweise derartiger Hilfsmittel erläutert werden:

Input
Datenstrom, der mit dem regulären Ausdruck verarbeitet werden soll; hier ein Teil (der Quelldaten) einer HTML-Seite.
Expression
Regulärer Ausdruck, mit dessen Hilfe aus dem Datenstrom der Wert des Feldes CM Status, also in diesem Fall Operational extrahiert werden soll.
Output
Die einzelnen Teile des Testergebnisses. Der Ausdruck in Klammern ([A-Za-z]+) stellt den Teil dar, der zur Weiterverarbeitung benutzt werden soll; der Rest dient zu Identifizierung der richtigen Stelle (hier Match at character 802) innerhalb des Datenstroms.

Erläuterung eines Regulären Ausdrucks

Regular Expression Tester, Explain

Der oben beschriebene Regular Expression Tester bietet über die Schaltfläche Explain auch eine Erläuterungsfunktion. Ebenfalls am obigen Beispiel wird im Bildschirmfoto wieder dargestellt, wie die einzelnen Bestandteile des regulären Ausdrucks sich auswirken.

Beispiele

Es finden sich hier und im Fhem Forum viele, teilweise recht komplexe Beispiele für die Verwendung von regulären Ausdrücken, unter anderem