Frage

Ist es möglich, String Negation in regulären Ausdrücken zu tun? Ich brauche alle Strings übereinstimmen, die nicht die Zeichenfolge ".." enthalten. Ich weiß, Sie ^[^\.]*$ können alle Strings übereinstimmen, die nicht "." enthalten, aber ich brauche mehr als ein Zeichen zu finden. Ich weiß, dass ich einfach einen String mit ".." passen könnte und dann den Rückgabewert des Spiels negieren das gleiche Ergebnis zu erreichen, aber ich nur gefragt, ob es möglich war.

War es hilfreich?

Lösung

Sie können die negativen Lookaheads verwenden:

^(?!.*\.\.).*$

, die bewirkt, dass der Ausdruck nicht übereinstimmen, wenn es eine Folge von zwei Perioden überall in der Zeichenfolge finden.

Andere Tipps

^(?:(?!\.\.).)*$

wird nur überein, wenn es keine zwei aufeinanderfolgenden Punkten überall in der Kette sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top