Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle regex:non inizia e non finisce con

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 ( o a o b o c o ) ".