Ich suche Lösung, wie Sie Klartext zu der js-Array zu analysieren. Ich habe bereits ein Schema gefunden, in dem ich das machen will, aber irgendwie festgefahren.Parsing Text zu js Array - Trennzeichen zum zweiten Element hinzufügen
Teil Klartext:
2017-11-08 09:43:49,153 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}2017-11-08 09:53:02,293 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}2017-11-08 09:53:02,355 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}
Erwartetes Ergebnis
const arr = [
'2017-11-08 09:43:49,153 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}',
'2017-11-08 09:53:02,293 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}',
'2017-11-08 09:53:02,355 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}'
]
RegexMuster:
/}\d{4}-\d{2}/
Jeder Brocken endet durch Schließen des Objekts "}" und Starten des neuen Datums "YYYY-MM".
Problem
plainText.split(/}\d{4}-\d{2}/)
Wenn ich es auf diese Weise geteilt, es "frisst" mein Separator immer. Gibt es eine Möglichkeit, Text zu teilen und dem zweiten Element aus dem geteilten Paar ein festgelegtes Trennzeichen hinzuzufügen? Dann könnte ich einfach "}" zum ersten hinzufügen und "}" vom zweiten entfernen. Es ist die Lösung, über die ich nachdenke, aber vielleicht können Sie etwas noch besser vorschlagen.
Woher kommt dieser unordentliche Text überhaupt? – melpomene
's.split (/ \ b (? = \ D {4} - \ d {2} - \ d {2} \ s + [\ d:,] + \ s + \ [INFO] \ s + root :) /). filter (Boolean) '. Kürzen Sie das Muster, wenn die Anforderungen lax sein können (abhängig vom Szenario, kann es sogar '/ \ b (? = \ D {4} - \ d {2} - \ d {2} \ s /' wenn das Datum sein Zeichenfolgen werden nicht in den JSON-Daten angezeigt.) Siehe [diese Demo] (https://regex101.com/r/6ZPbkW/1/) –
@melpomene Antwort von der API, mit der ich arbeite Ich habe keine Kontrolle über die Form, in der es die Antwort bekommt. –