Hi.
meine Version des Suchskripts hat gerade die ersten MUST- und NOT-Operatoren erfolgreich ausgewertet. Für Details siehe http://www.teamone.de/selfaktuell/self_forum/30722.html.
(Uuups: Stefan, was passiert mit dem link, wenn dieses Posting ins Archiv wandert? Paßt der Schwanzabschneider den irgendwie an?)
Die Auswertung war gar nicht schwer: Nachdem ich den Parser von Frank Schönmann praktisch unverändern übernommen habe, mußte der Matcher nur noch alle MUST- und alle NOT-Terme nacheinander bearbeiten, und das auch nur solange, bis einer "versagt". Der innere "Single-Matcher" führt einen "Vergleich" durch und berücksichtigt dabei die Parameter "auf Wortgrenze" und "case-sensitiv".
CAN-Parameter (solche, die weder ein "+" noch ein "-" als erstes Zeichen haben), sind in der Eingabe erlaubt, haben derzeit aber keine Wirkung. Mit einer Ausnahme: Wenn *kein* MUST-Term gefunden wird, dann wandele ich *alle CAN-Terme in MUST-Terme um, um der Schreibfaulheit der Anwender Rechnung zu tragen.
"Perl CGI" ist also gleichbedeutend mit "+Perl +CGI", während "Perl +CGI" *derzeit* gleichbedeutend mit "+CGI" ist (jaja, so ist das!)
Der eigentliche Abgleich ist immer noch der regular expression, wie der schon in der aktuellen Version realisiert ist.
Wer schon mal nach der Zeichenkette "+" oder "" gesucht hat (keine Angst, der Server stürzt dabei nicht ab :-). wird verstehen, daß dies nicht ganz unproblematisch ist.
Ich schlage vor, im eigentlichen Such-Term bestimmte Sonderzeichen zu "maskieren" (also etwa "+" in "+" umzuwandeln. Da ich aber sicher bin, dabei da eine oder andere Sonderzeichen zu übersehen, bitte ich um entsprechende Hilfestellung: Sollte überhaupt etwas "entschärft" werden, und wenn ja, dann was?
Vielleicht will der eine oder andere ja doch gerne richtige regular expressions eingeben und wäre traurig, wenn das nicht mehr gehen würde ...