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

Oracle REGEXP_LIKE og ordgrænser

Jeg tror, ​​du vil prøve

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

fordi \b vises ikke på denne liste:Perl-påvirkede udvidelser i Oracle Regular Expressions

\s sørger for, at testen starter og slutter i et mellemrum. Dette er dog ikke tilstrækkeligt, da strengen test kan også vises i begyndelsen eller slutningen af ​​den streng, der matches. Derfor bruger jeg alternativet (angivet med | ) ^ for start af streng og $ for slutningen af ​​strengen.

Opdatering (efter 3 år+)... Som det sker, havde jeg brug for denne funktionalitet i dag, og det forekommer mig, at endnu bedre et regulært udtryk er (^|\s|\W)test($|\s|\W) (Det manglende \b regulære udtryk specialtegn i Oracle).



  1. Returner resultater af en sql-forespørgsel som JSON i oracle 12c

  2. Hvad er MariaDB Enterprise Cluster?

  3. Kan ikke validere, med novalidate mulighed

  4. SQL Server Parallel Backup Restore -2