Sven Rautenberg: Suchbegriffe aus Variable sezieren

Beitrag lesen

Moin!

Ich möchte eigentlich eine Variable auslesen und ähnlich wie mit explode() alle Begriffe in einer Variable haben. Nur das Begriffe, die inerhalb von Gäsefüsschen als ein Begriff stehen bleiben sollen.

Also: "test "ein versuch" hallo"

Dann wirst du dir einen passenden Parser schreiben müssen, der entsprechend der von dir definierten Syntax die Zerlegung vornimmt. Im Gegensatz zu einem simplen explode() an Leerzeichen wirst du also berücksichtigen müssen, dass Texte innerhalb von Anführungszeichen nicht getrennt werden dürfen.

Am schlauesten gehst du den String von vorne aus Zeichen für Zeichen durch. Du merkst dir, welchen Zustände du hast (Startzustand wäre z.B. "Anführungszeichenmodus: nein"), und schaust dir das erste Zeichen an. Ist es ein Leerzeichen, und bist du nicht im Anführungszeichenmodus, ist es als Trennzeichen zu behandeln. Ist es ein Anführungszeichen, dann ändert sich der Anführungszeichenmodus. Ist es ein Textzeichen, dann muß es in das aktuelle Suchwort kopiert werden. Und so weiter (sofern du noch weitere Ideen für Suchwortsyntax hast, muß die natürlich auch noch behandelt werden).

- Sven Rautenberg

--
"Love your nation - respect the others."