Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Parser und Umlaute

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    [gelöst] Parser und Umlaute

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @tom_33 last edited by Homoran

      @tom_33 sagte in Parser und Umlaute:

      \p{L} jeden Buchstaben jeder Sprache aus

      \p{...}
      Matches a unicode character with the given group of properties or categories:
      http://www.fileformat.info/info/unicode/category/index.htm
      http://www.regular-expressions.info/unicode.html#category
      /\p{Armenian}+/
      զվարճանք is the word "fun" in Armenian

      Die Form {L} habe ich nicht gefunden, da muss laut Beispiel anscheinend die gewünschte Sprache rein, hier also vielleicht German?

      Versuch mal Wind<[^\:]+[^>]+[^\w]+(.+), Num = 0

      T 1 Reply Last reply Reply Quote 0
      • T
        tom_33 @Homoran last edited by tom_33

        @homoran sagte in Parser und Umlaute:

        Wind<[^:]+[^>]+[^\w]+(.+),

        Uff, den Ausdruck muss ich erst zerlegen. Aber mit dem komme ich meinem Ziel schon näher. Sobald ich das geschafft habe, melde ich mich wieder.

        Danke für die Links von den Codes
        Ich denke, \p{L} steht für Letter. German nützt leider nichts.

        Vorerst mal besten Dank.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @tom_33 last edited by

          @tom_33 sagte in Parser und Umlaute:

          Ich denke, \p{L} steht für Letter.

          eher für Language

          @tom_33 sagte in Parser und Umlaute:

          den Ausdruck muss ich erst zerlegen

          guten Appetit 😉

          bei Fragen - fragen!

          T 1 Reply Last reply Reply Quote 1
          • T
            tom_33 @Homoran last edited by

            @homoran sagte in Parser und Umlaute:

            guten Appetit

            Ich verdaue (verstehe) es nur Ansatzweise, aber es funktioniert 😀.
            Ich frage nun Windrichtung und Geschwindigkeit seperat ab und füge sie in meinem Vis wieder zusammen.

            Besten Dank für die schnelle Hilfe!

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @tom_33 last edited by Homoran

              @tom_33 sagte in Parser und Umlaute:

              aber es funktioniert

              natürlich 😆

              @tom_33 sagte in Parser und Umlaute:

              Ich verdaue (verstehe) es nur Ansatzweise

              du suchst einen möglichst eindeutige Stelle (Wind<) so dicht wie möglich an dem gewünschten Wert (String)
              Dann arbeitest du dich weiter mit Platzhaltern an die Stelle heran.
              Da der Parser nicht mit \n umgehen kann wird es leider etwas umständlicher:
              beliebig viele Zeichen bis zum nächsten Doppelpunkt [^:]+
              beliebig viele Zeichen bis zur nächsten schließenden spitzen Klammer [^:]+
              beliebig viele Zeichen bis zum nächsten Buchstaben [^\w]+
              Dann die gesuchte Gruppe bestehend aus einer beliebigen Anzahl von beliebigen Zeichen, beendet mit einem Komma (.+),

              1 Reply Last reply Reply Quote 0
              • T
                tom_33 last edited by

                @homoran sagte in Parser und Umlaute:

                So aufgedröselt und fein erklärt gehts ja, aber selbst auszudenken - da ist bei mir schon lange Schluss 😂
                Ein bisschen verwirrend ist, dass regex101 nicht die gleichen Resultate liefert.

                und zuletzt bestimmt die 0 (null) keine weiteren Zeichen mehr auszugeben?

                Homoran OliverIO 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @tom_33 last edited by

                  @tom_33 sagte in Parser und Umlaute:

                  Ein bisschen verwirrend ist, dass regex101 nicht die gleichen Resultate liefert.

                  Bei mir schon. (Ich nutze ja auch nur dokumentierte Befehle 😉 )
                  Hast du auch auf Javascript eingestellt?

                  @tom_33 sagte in Parser und Umlaute:

                  und zuletzt bestimmt die 0 (null) keine weiteren Zeichen mehr auszugeben?

                  ????

                  erst einmal ist 0 nicht null
                  und zweitens weiß ich nicht was du meinst.

                  Der RegEx enthält eine Gruppe, die das Ergebnis bereitstellt
                  Die Kunst liegt darin, diesen RegEx eindeutig zu machen

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    tom_33 @Homoran last edited by tom_33

                    @homoran sagte in Parser und Umlaute:

                    Hast du auch auf Javascript eingestellt?

                    natürlich nicht! Mein Fehler!

                    und zweitens weiß ich nicht was du meinst.
                    Versuch mal Wind<[^:]+[^>]+[^\w]+(.+), Num = 0

                    ohne "0" bekomme ich das Ergebnis:

                    87f006fc-1973-498b-8e0d-a7962eaf0df6-grafik.png

                    mit "0" dieses (so wie ich es möchte):

                    0ce30aa8-53b5-46cb-a204-79d70802b987-grafik.png

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @tom_33 last edited by

                      @tom_33 sagte in Parser und Umlaute:

                      ohne "0" bekomme ich das Ergebnis:

                      Sollte aber nicht.
                      kann sein, dass das > escaped werden muss \>

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tom_33 @Homoran last edited by tom_33

                        @homoran
                        Mir ist erst bei den Screenshots aufgefallen, dass das Dropdownfeld Num = 0 gemeint ist. Sorry!

                        Ein escape bringt leider keine Änderung.

                        Mein Irrtum bringt das gewünschte Ergebnis 🤔

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @tom_33 last edited by Homoran

                          @tom_33 sagte in Parser und Umlaute:

                          ir ist erst bei den Screenshots aufgefallen, dass das Dropdownfeld Num = 0 gemeint ist. Sorry!

                          😁

                          @tom_33 sagte in Parser und Umlaute:

                          Ein escape bringt leider keine Änderung.

                          Hab es jetzt erkannt (Windstill ist die Himmelsrichtung) Da muss ich nochmal ran,
                          Hab leider gerade alles zu gemacht 😞

                          Edit:
                          versuch mal: Wind<[^:]+[^>]+[^\w]+([\w,ü]+),

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            tom_33 @Homoran last edited by

                            @homoran sagte in Parser und Umlaute:

                            Wind<[^:]+[^>]+[^\w]+([\w,ü]+),

                            Bingo!

                            Eine Spende ist inzwischen an die GmbH gegangen.
                            Vielen, vielen Dank
                            sg tom

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @tom_33 last edited by Homoran

                              @tom_33 sagte in Parser und Umlaute:

                              Bingo!

                              und nimm das Komma wieder in den [ ] raus 😉
                              das hat sich dahin verirrt

                              korrekt:
                              Wind<[^:]+[^>]+[^\w]+([\wü]+),

                              1 Reply Last reply Reply Quote 1
                              • OliverIO
                                OliverIO @tom_33 last edited by OliverIO

                                @tom_33 sagte in Parser und Umlaute:

                                @homoran sagte in Parser und Umlaute:

                                So aufgedröselt und fein erklärt gehts ja, aber selbst auszudenken - da ist bei mir schon lange Schluss 😂
                                Ein bisschen verwirrend ist, dass regex101 nicht die gleichen Resultate liefert.

                                und zuletzt bestimmt die 0 (null) keine weiteren Zeichen mehr auszugeben?

                                Regex liefert eigentlich schon die gleichen Ergebnisse. Nur sind die voreingestellten Optionen bei regex101 andere wie beim parser

                                Regex101 = gm
                                Parser = si

                                Wenn man in regex 101 si als Optionen auswählt dann kommt man dem parser Verhalten näher.
                                Ich hatte mal in den source reingeschaut, aber unter bestimmten Umständen ändert er die Optionen wieder

                                Ok Korrektur, hab gerade mal in den source geschaut.
                                Wenn eine item Nummer angegeben wurde dann Option g
                                Wenn item Nummer nicht angegeben, dann keine Option.
                                Dafür werden aber generell alle Zeilenumbrüche vor dem parsen in Leerzeichen umgewandelt.

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                                  @oliverio sagte in Parser und Umlaute:

                                  Nur sind die voreingestellten Optionen bei regex101 andere wie beim parser
                                  Regex101 = gm
                                  Parser = si

                                  ja, aber was ist si, ich habe auf gs gestellt.
                                  \n kann der Parser z.B. nicht
                                  $ anscheinend auch nicht

                                  gefährlich ist aber, wenn man die Voreinstellung nicht auf javascript ändert

                                  OliverIO 1 Reply Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @Homoran last edited by OliverIO

                                    @homoran sagte in Parser und Umlaute:

                                    @oliverio sagte in Parser und Umlaute:

                                    Nur sind die voreingestellten Optionen bei regex101 andere wie beim parser
                                    Regex101 = gm
                                    Parser = si

                                    ja, aber was ist si, ich habe auf gs gestellt.
                                    \n kann der Parser z.B. nicht
                                    $ anscheinend auch nicht

                                    gefährlich ist aber, wenn man die Voreinstellung nicht auf javascript ändert

                                    Siebe mein angepasster Post oben.

                                    Zeilen Anfang ^ und Zeitenende $ gibt es halt dann nur ein einziges Mal. Nämlich am Anfang der Datei und am Ende der Datei, da alles dann nur noch aus einer Zeile besteht.

                                    Ich fände es schön wenn der parser Adapter oder parser2? Adapter genau so wie regex101 funktionieren würde und man nur noch den regex String und Optionen übernehmen müsste.

                                    g heißt global Match und gibt alle gefundenen Ergebnisse und nicht nur das erste zurück.
                                    i ist case insensitive also keine Unterscheidung von gross und Kleinbuchstaben
                                    s steht für single line , dass heist Zeilenumbrüche werden herausgefiltert (und nicht mit einem Leerzeichen ersetzt wie im parser Adapter)

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                                      @oliverio sagte in Parser und Umlaute:

                                      Ich fände es schön wenn der parser Adapter oder parser2? Adapter genau so wie regex101 funktionieren würde und man nur noch den regex String und Optionen übernehmen müsste.

                                      👍

                                      und wenn man dann in parser3 noch (optional) einen Browser-Header und Credentials mitgeben könnte wäre das die Kirsche auf der Sahne

                                      @oliverio sagte in Parser und Umlaute:

                                      i ist case insensitive also keine Unterscheidung von gross und Kleinbuchstaben

                                      heisst das, dass der Parser case insensitiv arbeitet?
                                      Das wärte natüerlich wichtig zu wissen

                                      OliverIO 1 Reply Last reply Reply Quote 0
                                      • OliverIO
                                        OliverIO @Homoran last edited by

                                        @homoran
                                        Nein nicht case insensitive.
                                        Option I ist nicht angegeben.
                                        Wobei da etwas vorgesehen ist was aber wohl nicht von der Oberfläche aus angesprochen wird

                                        Wenn im jeweiligen datenpunkt eines oder mehrere der folgenden Schlüsselworte mit angegeben ist, dann werden diese Optionen verwendet.
                                        https://github.com/ioBroker/ioBroker.parser/blob/e34122ce3aee43c24c44fe3b9375b07a49c551d0/main.js#L148

                                        Das kann man aber nur im raw Modus auf dem datenpunkt direkt pflegen.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        685
                                        Online

                                        32.1k
                                        Users

                                        80.6k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        19
                                        822
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo