Hi,
Beispiel:
Es soll geprüft werden, dass auf "auto" nicht "haus" folgt.
"automarke" oder "autofahrer" wäre aber ok.Dächte, das geht so /^auto[^haus].*/
Da es nicht ging, schaute ich mal, woran das liegt. Ahhh, [^haus] bedeutet, dass nur EIN Zeichen aus dieser Klasse nicht nach "auto" folgen darf.Hab dann erkannt, dass ich das so hätte schreiben müssen:
/^auto[^h][^a][^u][^s].*/
Dann hast Du falsch erkannt.
Probier es mal mit automarke aus (was laut Deiner Aussage ja ok wäre).
Die ersten 4 Zeichen 'auto' passen.
Das m ist kein h, paßt.
Das a ist aber ein a, ist also nicht erlaubt.
Uuuuups.
Was Du brauchst, ist ein negative Lookahead.
Dann klappt das.
genau, wenn Du einen negativen Lookahead für das 'haus' benutzt, dann klappt das.
Die Frage aber ist: kann man das nicht kürzer fassen?
Du willst einen kürzeren Ausdruck, der Deinen Anforderungen nicht genügt? Kannst Du haben: /./
Oder muss man zwingend jeden Buchstaben eines Wortes extra klammern und negieren?
Nein, darf man nicht, weil das den Anforderungen nicht genügt.
Man kann einen negativen Lookahead benutzen.
(ich will nicht ausschließen, daß es andere Lösungen gibt ...)
Und wie macht man dass dann, wenn man bspw. "haus" und "center" AUSSCHLIESSEN wöllte?
Indem man im negativen Lookahead eine Alternative benutzt.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.