Att testa för icke-matchning som detta kan bli komplicerat, så jag skulle rekommendera att testa för en matchning och förneka resultatet.
Börjar inte med abc
:
WHERE NOT REGEXP_LIKE(myString, '^abc')
Slutar inte med abc
:
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Vad gäller varför det inte fungerar, som @DavidKnipe säger i sitt svar:det är för att du använder karaktärsklasser. Regexet ^[^(abc)]
analyserar så här:
- Den första
^
säger "ankare till början av strängen" [^(abc)] är en teckenklass som säger "matcha vilken enkel som helst tecken så länge det inte är (
ellera
ellerb
ellerc
eller)
".