PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit regulären Ausdrücken


HerbyDerby
05.12.2005, 16:38:28
Hallo an alle,

ich bin neu hier und habe sofort ein herbes (Verständnis)-Problem:

Im Moment kämpfe ich mit einem regulären Ausdruck, der statt einer Volltextsuche mit Funden innerhalb eines Wortes nur noch das Wort allein anzeigen soll, allerdings auch dann, wenn unmittelbar davor/dahinter z.B. ein , oder ( eine ) oder " stehen.

Beispiel: Die Suche nach 'rhein' bringt bei der normalen Volltextsuche noch 'rheinbrücke' oder 'oberrhein', soll aber mit dem Regulären Ausdruck nur noch 'rhein' oder '(rhein)' oder 'rhein,' oder auch 'rhein/sieg' durchlassen.
Innerhalb einer Zeile macht der Ausdruck das auch brav - sofern noch irgendetwas an 'Fleisch' um den Begriff herum existiert.

Mein Problem: Ich finde keine Begriffe, die nur für sich allein stehen, wenn also der Inhalt der Datenbank-Zelle nur aus dem Begriff allein besteht.

Das Schlimmste daran ist, dass es offenbar ein Logik-Problem gibt. Aber der Reihe nach:

wenn ich zu Testzwecken in der MySQL-Abfrage mit folgender Syntax arbeite

(1): REGEXP '^".$searchParam."'

dann bekomme ich als Ergebnis brav alle Vorkommen des Suchbegriffs zu Beginn einer Zeile, auch die allein stehenden.

Wenn ich nun aber eine ODER-Verknüpfung anlege, die auch noch nach den am Ende der Zeile stehenden Begriffen suchen soll, dann bekomme ich gar keine allein stehenden Begriffe mehr zu sehen. Syntax:

(2): REGEXP '^".$searchParam." | ".$searchParam."$'

Die Treffermengen der Abfragen (1) und (2), die sich ja eigentlich addieren müssten, scheinen irgendwie eingeschränkt zu werden - die Treffermenge ist immer deutlich kleiner als (1) oder (2) allein !!!

Das begreife ich nicht. Bisher dachte ich immer, dass ODER eben bedeutet, dass entweder die Notation vorn oder die Notation hinten ausgeführt wird.
(Wobei laut meinen Büchern gelten soll, dass, wenn die vordere erfüllt ist, die hintere nicht mehr ausgeführt wird.)

Wie also kann es sein, dass jetzt die Begriffe, die ich mit der Suche (1) gefunden habe, mit der Suche (2) nicht mehr gefunden werden ???

Hat jemand irgendwelche Erfahrungen mit regulären Ausdrücken in dieser Bauart?

Schon mal Danke im voraus !!!
HerbyDerby