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 odera
oderb
oderc
oder)
".