Das Testen auf solche Nichtübereinstimmungen kann kompliziert werden, daher würde ich empfehlen, auf eine Übereinstimmung zu testen und das Ergebnis zu negieren.
Beginnt nicht mit abc :
WHERE NOT REGEXP_LIKE(myString, '^abc')
Endet nicht mit abc :
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Warum es nicht funktioniert, wie @DavidKnipe in seiner Antwort sagt:Es liegt daran, dass Sie Zeichenklassen verwenden. Die Regex ^[^(abc)] parst wie folgt aus:
- Der erste
^sagt "am Anfang der Zeichenfolge verankern" - Der
[^(abc)]ist eine Zeichenklasse, die besagt:„passt zu jedem single Zeichen, solange es nicht(ist oderaoderbodercoder)".