Testowanie pod kątem niedopasowania może być skomplikowane, więc polecam testowanie pod kątem dopasowania i zanegowanie wyniku.
Nie zaczyna się od abc
:
WHERE NOT REGEXP_LIKE(myString, '^abc')
Nie kończy się na abc
:
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Dlaczego to nie działa, jak mówi @DavidKnipe w swojej odpowiedzi:to dlatego, że używasz klas postaci. Wyrażenie regularne ^[^(abc)]
analizuje w ten sposób:
- Pierwszy
^
mówi „zakotwicz na początku ciągu” [^(abc)]
to klasa postaci, która mówi „dopasuj dowolne pojedyncze znak, o ile nie jest to(
luba
lubb
lubc
lub)
".