NEWS
Visualisierung mit Node Red erstellen
-
@damrak2022 Gut - das heisst also für uns wäre es interessant nur die Kennung aus dem Topic zu extrahieren. Richtig?
-
@mickym Ja
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ja
Das heisst wir werden jetzt versuchen einen regulären Ausdruck zu finden, um alle Kennungen zu extrahieren.
Als erstes öffnest Du die Seite, die ich Dir gepostet habe und kopierst dort das topic rein.
Sollte dann so aussehen
-
@mickym Habe ich
-
@damrak2022 Verkehrt - genau hinschauen.
-
@mickym Du hast kein Bild gepostet
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Du hast kein Bild gepostet
Ok sorry. - Na auf jeden Fall muss der topic in den zu untersuchenden String.
-
@mickym Habe ich
-
@damrak2022 Gut und oben in die Zeile werden wir nun unseren regulären Ausdruck schreiben. Um etwas zu extrahieren - müssen wir eine sogenannte Gruppe bilden.
In dem Feld rechts unten auf der Seite findest Du den sogenannten Code welche Zeichenfolge für welche Zeichen steht.
wie du siehst steht für ein beliebiges Zeichen ein Punkt:
-
@mickym Ja, den sehe ich
-
@damrak2022 sagte in Visualisierung mit Node Red erstellen:
@mickym Ja, den sehe ich
Wenn Du jetzt in Deinem regulären Ausdruck einen Punkt eingibst, dann siehst Du rechts in der Mitte wie oft das "matched".
-
@mickym Bis match 39 Praktisch für jedes Zeichen ein Match
Und 16 - 25 wollen wir haben. -
@damrak2022 Genau - weil ein Punkt für ein beliebiges Zeichen steht matched es 39 Mal - also für jedes Zeichen. Als erstes musst Du aber immer schauen (in unserem Fall jedenfalls), dass es erst mal nur ein Mal matched. Deswegen müssen wir unseren regulären Ausdruck dahingehend ändern, dass es alle Zeichen auf einmal matched.
Dafür gibt es sogenannte Quantifier. Das heisst wir geben an wieviel mal das beliebige Zeichen vorkommen kann.
Dabei steht der "Stern" dafür, dass es kein mal oder beliebig oft auftreten darf.
Wenn Du also hinter den "." einen Stern machst, dann wird plötzlich der gesamte String komplett als 1 match gezählt - weil wir sagen ein beliebiges Zeichen kann beliebig oft auftreten.
-
@mickym Sieht bei mir jetzt so aus:
-
@damrak2022 Ja wobei der Teststring eigentlich nun durchgehend blau sein sollte, weil es einmal matched.
Sollte eigentlich so aussehen Dein Teststring. Dein Bild schaut so aus, als ob es aus dem ersten Bild stammt.
-
@mickym Der ist durchgehend blau - hat wahrscheinlich mit dem haken meines Rechners zu tun
-
@damrak2022 Gut wunderbar. Das heisst es matched alles einmal, weil ein beliebiges Zeichen beliebig oft auftreten kann.
Nachdem Du vorher ja schon gesehen hast, dass das Topic genau 39 Zeichen hast. Wenn Du also mit einer genauen Anzahl Zeichen arbeiten willst kannst Du das machen, indem Du es in geschweifte Klammern eingibst.
Also immer das Zeichen das suchen und dann wie oft das vorkommt.
Wenn Du also
.*
eingibst, kann ein beliebiges Zeichen beliebig oft auftreten
wenn Du
.{39}
eingibst dann kann ein beliebiges Zeichen genau 39 mal auftreten.
Wenn Du
.{10}
eingibst, dann tritt ein beliebiges Zeichen genau 10 mal auf. Probier das mal aus, dann sollten nur die ersten 10 Zeichen markiert sein.
-
@mickym Aber warum bekomme ich jetzt 3 x 10 Zeichen?
-
Weil der String 3 mal matched - Zeichen 1-10, 11-20, 21-30
-
@mickym Okay, aber ich soll ja fragen: Ich hätte gedacht das mir jetzt nur einmal die ersten 10 Zeichen angezeigt werden. Warum matched das 3 mal