NEWS
Adapter "log Parser" - Komma bereinigen
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
Jetzt hatte ich alles schon geschrieben (inkl. Hardcopy)
und ich verstehe immer noch nicht was du erreichen willst.
Ich kenne den Adapter nicht und weiß nicht wie er funktioniert.
Was soll das RegEx denn bewirken?
Was soll herauskommen?Kannst du da mal ein Beispiel geben?
Vorher (Original) -> Nachher (Wunschzustand) -
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
Vorher (Original) -> Nachher (Wunschzustand)
Original:
json = {"name": "Robo-Maeh", "id": "081603", "status": {"status": 17, "distance": 0, "stopped": false, "dooropen": false,
"duration": 182300, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97,
"hours": 6, "days": 6}, "wlan": {"signal": -74}, "health": {"temperature": 23, "humidity": 25}, "clock":
{"date": "2020-10-06", "time": "21:51:59", "unix": 1602021119}, "successful": true}Wunsch:
{"status": 17, "distance": 0, "stopped": false, "dooropen": false,
"duration": 182300, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97,
"hours": 6, "days": 6}, "wlan": {"signal": -74}, "health": {"temperature": 23, "humidity": 25}also:
vorne bis status weg
und hinten ab clcok wegerreicht habe ich dies bei Bereinigen mit:
json = ,/{"name"[^] "status": /,/ "clock"[^*]*true}/es kommt dann:
{"status": 17, "distance": 0, "stopped": false, "dooropen": false, "duration": 184100, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97, "hours": 6, "days": 6}, "wlan": {"signal": -74}, "health": {"temperature": 23, "humidity": 25},-> Aber das letzte Komma geht nicht weg. Egal welcher regex ich benutze; (was aber in regex101 klappt)
Problem:
Adapter trennt die einzelnen Ausdrücke per Komma. -
versuch es mal mit
tus": {"([[:ascii:]\s]+). "cl
regex101 hat mich gerade extrem verunsischert, üblicherweise steht ein Punkt für jedes beliebige Zeichen, anscheinend nicht in eckigen Klammern, also bei
[.\s]+
gilt der Punkt angeblich tatsächlich nur als Punktund du willst vorne hinter dem ersten "status" tatsächlich die führende geschweifte Klammer weg haben?
-
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
und du willst vorne hinter dem ersten "status" tatsächlich die führende geschweifte Klammer weg haben?
Ne, ist aber im Wunsch doch noch drin.
Wunsch:
{"status": 17,...Habe es mal versucht mit regex101
Es wird aber nichts gemacht.
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
Habe es mal versucht mit regex101
wo meinst du, dass ich es her habe?
Sorry, mein Fehler - melde mich gleich!
-
dein oben geposteter sieht aber anders aus
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
dein oben geposteter sieht aber anders aus
ja, hatte ihn anschließend noch was optimiert
Aber jetzt:
tus": {"(.+\s.+\s.+), "cl
oder:
tus": {"([\w\W]+), "cl
-
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
tus": {"(.+\s.+\s.+), "cl
Rainer,
ich brauchs aber genau andersrum.
gemacht werden muss:
json = {"name": "Robo-Maeh", "id": "081603", "status":
und
, "clock": {"date": "2020-10-06", "time": "21:51:59", "unix": 1602021119}, "successful": true}Also der erste und letzte Teil, weil dies wird ja bereinigt.
Stehen bleiben soll dann:
{"status": 17, "distance": 0, "stopped": false, "dooropen": false, "duration": 182300, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97, "hours": 6, "days": 6}, "wlan": {"signal": -74}, "health": {"temperature": 23, "humidity": 25}Gerne auch in 2 matches.
kann man ja dann mit Komma getrennt eintragen. -
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
json = {"name": "Robo-Maeh", "id": "081603", "status": {"status": 17, "distance": 0, "stopped": false, "dooropen": false,
"duration": 182300, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97,
"hours": 6, "days": 6}, "wlan": {"signal": -74}, "health": {"temperature": 23, "humidity": 25}, "clock":
{"date": "2020-10-06", "time": "21:51:59", "unix": 1602021119}, "successful": true}Der 1. Teil geht so:
Nur der 2. Teil geht nicht.
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
ich brauchs aber genau andersrum.
Dan sach das doch
-
Und der 2. Teil klappt in regex101 so:
Jedoch nicht im Adapter.
-
-
@bahnuhr 2. Teoil:
(, "cl[\w\W]+)
-
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
(, "cl[\w\W]+)
Ich sags ja.
In 101 funktioniert dies.Im Adapter nicht !
Der Teil wird nicht entfernt!
Weiterhin:
json = {"name": "Robo-Maeh", "id": "081603", "status": {"status": 17, "distance": 0, "stopped": false, "dooropen": false, "duration": 243382, "mode": 2, "battery": 100, "hours": 6}, "timer": {"status": 0}, "blades": {"quality": 97, "hours": 6, "days": 6}, "wlan": {"signal": -75}, "health": {"temperature": 25, "humidity": 24}, "clock": {"date": "2020-10-07", "time": "14:49:59", "unix": 1602082199}, "successful": true}Eingegeben ist:
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
Im Adapter nicht !
auch nicht in dieser Schreibweise
was steht denn im Editor?
-
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
was steht denn im Editor?
Lt. Anleitung sind regex im Adapter mit / ... / einzuschließen.
Was meinst du mit Editor ?
-
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
Was meinst du mit Editor ?
ich war beim normalen Parser-Adapter, da kann man im Editor (Bleistift) sehen was passiert
ich müsste wissen wo sich das RegEx im Adapter aufhängt.
sonst muss man sich schrittweise ranarbieten, z.B. Leerzeichen durch\s
erstezen
(,\s\"cl[\w\W]+)
EDIT:
die beiden slashes sind ja hier auch:
EDIT2:
wenn der Adapter keine Kommata mag, dann kann ich mir nur noch helfen dieses zu escapen (hatten wir schon), oder wegzulassen und später wieder hinzuzufügen
-
@Homoran sagte in Adapter "log Parser" - Komma bereinigen:
oder wegzulassen und später wieder hinzuzufügen
was meinst du damit.
P.S.
\s
hat nichts gebracht; da bleibt wieder alles stehen. -
@bahnuhr sagte in Adapter "log Parser" - Komma bereinigen:
was meinst du damit.
das:
(\s\"cl[\w\W]+)
-
Rainer,
ich habs.Den 1.Teil mit:
/json = {"name"[^] "status": /Den 2. Teil mit:
/ "clock[^*]*l": true}/Und dann steht ja am Ende noch ein Komma; und dies dann mit:
/.{1}$/Da die einzelnen regex wohl nacheinander abgearbeitet werden, ist das Ergebnis dann korrekt.
Eingetragen hab ich somit:
/json = {"name"[^] "status": /,/ "clock[^*]*l": true}/,/.{1}$/mfg
DieterP.S.
Danke für deine Hilfe.