Ok, ich fühle mich ziemlich dick. Grundsätzlich möchte ich einen regulären JavaScript-Ausdruck definieren, der genau zu einer bestimmten Zeichenfolge passt, die außer entspricht. Also sag ich habe die Zeichenfolge
%Vor%oder
%Vor%Ich möchte einen einzelnen eigenständigen regulären Ausdruck, so dass er mit der Zeichenfolge
übereinstimmt %Vor%oder die Zeichenfolge
%Vor%Nur nicht "Hund" oder "Katze" allein. Ich habe das versucht, was im Grunde sagt, ignorieren alles beginnend mit "Katze" oder "Hund", die nicht genau das ist, was ich brauche ...
%Vor%Das muss einfach sein ... danke!
Bearbeiten Nur um klarzustellen, ich möchte keine Negation von Rückgabewerten machen, um das gewünschte Resultat zu erhalten - die Regex sollte falsch für "Hund" und wahr für "Hundeschlitten" oder falsch für "Katze" und wahr für "Vieh" zurückgeben
Ich würde mich dafür entscheiden, ein Match einfach zu negieren, wie es in Linus Kleens Antwort steht. Wenn Sie jedoch alles in Regex (oder für die Lernerfahrung oder etwas) tun müssen, dann sollte das folgende funktionieren:
%Vor% Dies verwendet zwei negative Lookaheads in einem Wechsel. Der erste sagt "Match cat
oder dog
, wenn nicht das Ende des String-Zeichens folgt ( $
), gefolgt von allem anderen". Dies entspricht dogsled
und cats
und Dingen dieser Art.
Die zweite Hälfte der Alternation sagt "Stellen Sie sicher, dass der Anfang der Zeichenfolge ( ^
) nicht gefolgt wird von dog
oder cat
(so dass es nicht mit einer dieser beginnt), dann passen Sie alles an ". Dadurch erhalten Sie ein beliebiges Wort, das nicht mit cat
oder dog
(wie banana
) beginnt.
Ich erinnere mich, dass negative Look-Ahead-Assertions ( (?! ... )
) nicht in allen Javascript-Interpretern vollständig unterstützt werden. Eine einfache Negation des Ergebnisses der Regex sollte ebenfalls genügen, nein?
Tags und Links javascript regex