Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle REGEXP_LIKE и граници на думите

Вярвам, че искате да опитате

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

защото \b не се появява в този списък:Perl-влияни разширения в регулярни изрази на Oracle

\s гарантира, че тестът започва и завършва в празно пространство. Това обаче не е достатъчно, тъй като низът test може също да се появи в самото начало или в края на низа, който се съпоставя. Затова използвам алтернативата (обозначено с | ) ^ за начало на низ и $ за края на низа.

Актуализация (след повече от 3 години)... Както се случи, имах нужда от тази функционалност днес и ми се струва, че дори по-добре регулярният израз е (^|\s|\W)test($|\s|\W) (Липсващият специален символ на регулярен израз в Oracle).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите базата данни на Oracle за продължителни заявки

  2. Oracle:Пълнотекстово търсене с условие

  3. Откриване на цикъл с рекурсивно факториране на подзаявка

  4. Има ли начин да създадете множество тригери в един скрипт?

  5. Получете набори от корекции за база данни