sql >> Databasteknik >  >> RDS >> Oracle

Oracle REGEXP_LIKE och ordgränser

Jag tror att du vill prova

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

eftersom \b visas inte på den här listan:Perl-influerade tillägg i Oracle Regular Expressions

\s ser till att testet startar och slutar i ett blanksteg. Detta är dock inte tillräckligt eftersom strängen test kan också visas i början eller slutet av strängen som matchas. Därför använder jag alternativet (anges med | ) ^ för början av strängen och $ för slutet av strängen.

Uppdatering (efter 3 år+)... Som det råkar behövde jag den här funktionen idag, och det verkar för mig att ännu bättre ett reguljärt uttryck är (^|\s|\W)test($|\s|\W) (Det saknade specialtecknet \b reguljära uttryck i Oracle).



  1. Lägg till saknad data från föregående månad eller år kumulativt

  2. Varför tar Microsoft SQL Server 2012-frågan några minuter över JDBC 4.0 men sekund(er) i Management Studio?

  3. Hjälp oss att modernisera IDE i MS Access – din röst räknas!

  4. MOD() Funktion i Oracle