Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle regex - não começa e não termina com


O teste de não correspondência como esse pode ser complicado, então eu recomendo testar uma correspondência e negar o resultado.

Não inicia com abc :
WHERE NOT REGEXP_LIKE(myString, '^abc')

Não termina com abc :
WHERE NOT REGEXP_LIKE(myString, 'abc$')

Quanto ao motivo de não funcionar, como @DavidKnipe diz em sua resposta:é porque você está usando classes de caracteres. A regex ^[^(abc)] analisa assim:
  • O primeiro ^ diz "âncora no início da string"
  • O [^(abc)] é uma classe de caracteres que diz "combinar com qualquer único caractere desde que não seja ( ou a ou b ou c ou ) ".