Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle REGEXP_LIKE et limites de mots

Je crois que tu veux essayer

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

parce que le \b n'apparaît pas dans cette liste :extensions influencées par Perl dans les expressions régulières Oracle

Le \s s'assure que le test commence et se termine dans un espace blanc. Ce n'est cependant pas suffisant puisque la chaîne test peut également apparaître au tout début ou à la fin de la chaîne recherchée. Par conséquent, j'utilise l'alternative (indiqué par le | ) ^ pour début de chaîne et $ pour fin de chaîne.

Mise à jour (après 3 ans et plus)... Il se trouve que j'avais besoin de cette fonctionnalité aujourd'hui, et il me semble qu'une expression régulière encore meilleure est (^|\s|\W)test($|\s|\W) (Le caractère spécial d'expression régulière \b manquant dans Oracle).