Calocybe: Regulärer Ausdruck gesucht

Beitrag lesen

Hi,

nun haengt Deine frage schon anderthalb Tage hier einsam rum und niemand erbarmt sich Deines Problems. *g*

Naja, ich weiss leider auch keine so richtige Loesung, sonst haette ich schon eher mal was dazu geschrieben. Ich denke mir das so ungefaehr:

Vor dem split ersetze die fraglichen Leerzeichen durch irgendwas anderes moeglichst einzigartiges (hier ###):
$query =~ s/("\S+)\s(\S+")/\1###\2/g;

Probleme die ich erwarte: Klappt das mit \1 und \2 so wie ich mir das denke? Und vielleicht wird hier nur das erste und das letzte Anfuehrungszeichen gefunden, nicht wiederholt die zusammengehoerigen (Du weisst schon, das Problem zu dem ich mal gefragt hatte, warum die Loesung funktioniert (irgendwo in einer der neuesten Archivdateien)).

Dann split wie bisher.

@woerter = split(/ /,$query);

Dann die ### zurueckverwandeln und dabei gleich die Quotes entfernen:
for (@woerter) { $_ =~ s/"([^#]+)###(.+)"/\1 \2/g }

(alles ungetestet, hoffentlich nicht _zu_ fehlerhaft)

Boole entferne ich auch weiterhin vorher, das soll kein Problem darstellen. Aber die Quotes...

Und dass Du mir dran denkst, die Boole nur dann zu entfernen, wenn sie nicht innerhalb von Quotes stehen...

Calocybe