ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
199
199
EMPFEHLEN
-
31.10.11 16:03 #1
- Registriert seit
- Jun 2009
- Beiträge
- 26
Hi!
Ich habe folgendes Problem:
Ich muss mehrere Ausdrücke der Form ' eins.zwei == "irgendeinstring" ' bzw. ' eins.zwei == [ "Dies ist String 1", "Dies ist String 2" ] ' parsen.
"eis.zwei" ist eine Adresse und hier eher unbedeutend
"==" ist einer von mehreren Operatoren.
Das letzte ist entweder ein einzelner String oder eine Liste von Strings in eckigen Klammern gefasst.
Zum Parsen trenne ich den gesamten String nun anhand der '&' Zeichen in die einzelnen Ausdrücke auf.
Danach wird jeder Ausdruck in Adresse, Operator und Operand zerlegt.
Da in den Strings selber wieder '&'-Zeichen stehen, benutze ich boost::escaped_list_separator um '&'-Zeichen zwischen Quotes zu ignorieren.
Das Auftrennen in die einzelnen Ausdrücke klappt also.
Allerdings löscht boost::escaped_list_separator die Quotes!
Dadurch wird es, wenn ich mir den Operanden dann ansehe, unmöglich die Strings zu trennen.
' eins.zwei == [ "Karl &", "- Heinz" ] '
Liefert dann folgenden Operanden: '[ Karl &, - Heinz ]'
Ich weiß also nicht mehr wo der erste String aufhört und der zweite beginnt.
Weiß jemand Rat?Geändert von PhilippGer (31.10.11 um 16:11 Uhr)
-
01.11.11 08:23 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Vermutlich hat das Forum da irgendwelche Zeichen entfernt, oder ich verstehe nicht ganz was du mit "anhand der '&' Zeichen" auftrennen meinst?!
Hast du dir mal Boost.Spirit angeschaut?
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.11.11 11:14 #3
- Registriert seit
- Jun 2009
- Beiträge
- 26
Nein, ist alles drin... ich habe mich vermutlich etwas falsch ausgedrückt.
Hier mal ein beispiel:
father.son1 == ["Hans", "Peter"] && father.son2 == ["Hans && Peter", "Peter && Paul"]
Wenn ich nun die escaped List benutze, trennt boost das korrekt in 2 Ausdrücke:
father.son1 == [Hans, Peter]
und
father.son2 == [Hans && Peter, Peter && Paul]
Allerdings werden dadurch sämtliche Anführungszeichen entfernt.
Sprich, ich kann in den Klammern nicht mehr feststellen, was genau die ursprünglich in Anführungszeichen gefassten Strings waren.
Boost Spirit hatte ich mir dazu noch nicht angesehen.
Wird aber jetzt mal nach geholt.
Ähnliche Themen
-
Boost Regex
Von Jacal im Forum C/C++Antworten: 2Letzter Beitrag: 27.08.10, 14:04 -
Probleme mit dem Boost xml parser
Von Cyraid im Forum C/C++Antworten: 1Letzter Beitrag: 09.05.10, 18:45 -
Boost::thread
Von Ryu1991 im Forum C/C++Antworten: 4Letzter Beitrag: 27.07.09, 21:38 -
string anhand eines regulären Ausdrucks konvertieren (boost\regexp)
Von inno1 im Forum C/C++Antworten: 2Letzter Beitrag: 23.04.09, 22:57 -
[AE] Speed Boost
Von haebel im Forum Videoschnitt, Videotechnik & -produktionAntworten: 4Letzter Beitrag: 04.08.03, 09:35





Zitieren
Login






