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

Oracle REGEXP_LIKE e limites de palavras


Eu acredito que você quer tentar
 select 1 from dual 
  where regexp_like ('does test work here', '(^|\s)test(\s|$)');

porque o \b não aparece nesta lista:Extensões influenciadas por Perl em Oracle Regular Expressions

O \s garante que o teste comece e termine em um espaço em branco. No entanto, isso não é suficiente, pois a string test também pode aparecer no início ou no final da string que está sendo correspondida. Portanto, eu uso a alternativa (indicado pelo | ) ^ para início de string e $ para o final da string.

Atualizar (após mais de 3 anos)... Acontece que eu precisava dessa funcionalidade hoje e me parece que ainda melhor uma expressão regular é (^|\s|\W)test($|\s|\W) (O caractere especial de expressão regular \b ausente no Oracle).