Ich habe hier mit einem Problem zu tun, verursacht durch ein schmutziges Design. Ich bekomme eine Liste von Zeichenfolgen und möchte Attribute daraus analysieren. Leider kann ich die Quelle, in der diese Zeichenfolge erstellt wurde, nicht ändern.Attribute einer Zeichenfolge extrahieren
Beispiel:
String s = "type=INFO, languageCode=EN-GB, url=http://www.stackoverflow.com, ref=1, info=Text, that may contain all kind of chars., deactivated=false"
Jetzt möchte ich die Attribute extrahieren type
, languageCode
, url
, ref
, info
und deactivated
.
Das Problem hier ist das Feld info
, deren Text nicht durch Anführungszeichen begrenzt ist. In diesem Feld können auch Kommas vorkommen, sodass ich das Komma am Ende der Zeichenfolge nicht verwenden kann, um herauszufinden, wo die Enden enden.
Zusätzlich enthalten diese Zeichenfolgen nicht immer alle Attribute. type
, info
und deactivated
sind immer vorhanden, der Rest ist optional.
Irgendwelche Vorschläge, wie ich dieses Problem lösen kann?
Ist Reihenfolge dieser Elemente festgelegt? – Pshemo
Wie wäre es mit der Suche nach '=' und dann das einzelne Wort davor als Feldname auswählen. Alles nach dem '=' bis zum nächsten Feldnamen ist der Wert. Dies setzt voraus, dass der Wert nicht '=' enthalten kann - wenn es möglich ist, haben Sie nicht viel zu tun. – xxbbcc
Wenn alle _other_ -Attribute ein etwas vorhersehbares Format haben, könnten Sie diese entfernen und alles für 'info' behalten ... –