At teste for ikke-match som denne kan blive kompliceret, så jeg vil anbefale at teste for et match og negere resultatet.
Starter ikke med abc
:
WHERE NOT REGEXP_LIKE(myString, '^abc')
Ender ikke med abc
:
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Med hensyn til hvorfor det ikke virker, som @DavidKnipe siger i sit svar:det er fordi du bruger karakterklasser. Regex ^[^(abc)]
analyserer sådan her:
- Den første
^
siger "anker til begyndelsen af strengen" [^(abc)] er en karakterklasse, der siger "match enhver enkelt tegn, så længe det ikke er (
ellera
ellerb
ellerc
eller)
".