Testen op niet-overeenkomsten zoals deze kan ingewikkeld worden, dus ik raad aan om te testen op een overeenkomst en het resultaat te negeren.
Begint niet met abc
:
WHERE NOT REGEXP_LIKE(myString, '^abc')
Eindigt niet op abc
:
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Wat betreft waarom het niet werkt, zoals @DavidKnipe in zijn antwoord zegt:het komt omdat je karakterklassen gebruikt. De regex ^[^(abc)]
ontleedt als volgt:
- De eerste
^
zegt "anker aan het begin van de string" - De
[^(abc)]
is een tekenklasse die zegt "kom overeen met elke enkele karakter zolang het niet(
. is ofa
ofb
ofc
of)
".