REGEXP multi lookahead


abdellaui

Erfahrenes Mitglied
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte einen Regulären Ausdruck entwickeln, welches Sätze mit den enthalten Wörter (unabhängig von der Reihenfolge) selektiert.

Hilfestellung von @sheel und @Yaslaw führten zu diesem Ansatz:

Code:
(?=.*(wort|wort2))(?=.*wort3)(?=.*wort4).*

Dieser Ausdruck erfüllt meine Vorraussetzung bedingt, unzwar falls die Wörter unabhängig voneinander sind bzw. nicht aus zusammengesetzen Wörtern bestehen.

Ein Beispiel was zur "Fehler" führt:

Code:
(?=.*(buchhalter|auto))(?=.*buch)(?=.*automatik).*

Ein Satz, welches nur die Wörter buchhalter und automatik vorzeigt wird vom Ausdrück selektiert, jedoch sollten Sätze, die die Wörter buchhalter oder auto, buch und automatik beinhalten, selektiert werden.

Meine Frage wäre nun, gibt es da eine Lösung lookahead Ausdrücke vorzuschreiben nicht in einem anderen Ausdruck enthalten zu sein?
 

Yaslaw

n/a
Moderator
In welcher Programmiersprache war das?
War das nicht mit MySQL oder Oracle oder so?
Du solltest wirklich nicht alles mit einem regex lösen....
 

abdellaui

Erfahrenes Mitglied
Gibt es da keine "allgemeingültige" Lösung? Quasi ein Prefix, welches vorsagt, das die lookahead Ausdrücke nicht in anderen Ausdrücken vorkommen dürfen?