sql >> Base de Datos >  >> RDS >> Oracle

Oracle REGEXP_LIKE y límites de palabras

Creo que quieres probar

 select 1 from dual 
  where regexp_like ('does test work here', '(^|\s)test(\s|$)');

porque el \b no aparece en esta lista:extensiones influenciadas por Perl en expresiones regulares de Oracle

El \s se asegura de que la prueba comience y termine en un espacio en blanco. Sin embargo, esto no es suficiente, ya que la cadena test también podría aparecer al principio o al final de la cadena que se está comparando. Por lo tanto, uso la alternativa (indicado por el | ) ^ para el inicio de la cadena y $ para el final de la cadena.

Actualizar (después de 3 años o más)... Da la casualidad de que necesitaba esta funcionalidad hoy, y me parece que una expresión regular aún mejor es (^|\s|\W)test($|\s|\W) (El carácter especial de expresión regular \b que falta en Oracle).