Testare la mancata corrispondenza come questo può diventare complicato, quindi ti consiglio di testare una corrispondenza e negare il risultato.
Non inizia con abc
:
WHERE NOT REGEXP_LIKE(myString, '^abc')
Non termina con abc
:
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Per quanto riguarda il motivo per cui non funziona, come dice @DavidKnipe nella sua risposta:è perché stai usando classi di caratteri. La regex ^[^(abc)]
analizza in questo modo:
- Il primo
^
dice "ancora all'inizio della stringa" - Il
[^(abc)]
è una classe di caratteri che dice "corrisponde a qualsiasi singolo carattere purché non sia(
oa
ob
oc
o)
".