Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle REGEXP_LIKE i granice słów

Wierzę, że chcesz spróbować

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

ponieważ \b nie pojawia się na tej liście:Rozszerzenia pod wpływem Perla w wyrażeniach regularnych Oracle

\s upewnia się, że test zaczyna się i kończy w odstępie. To jednak nie wystarczy, ponieważ ciąg test może również pojawić się na samym początku lub na końcu dopasowywanego ciągu. Dlatego używam alternatywy (wskazany przez | ) ^ na początek ciągu i $ na koniec ciągu.

Aktualizacja (po 3 latach)... Tak się składa, że ​​potrzebowałem tej funkcjonalności dzisiaj i wydaje mi się, że jeszcze lepszym wyrażeniem regularnym jest (^|\s|\W)test($|\s|\W) (Brak znaku specjalnego \b w wyrażeniu regularnym 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. Podziel ciąg na wiersze Oracle SQL

  2. Usuń z lewym złączem w Oracle 10g

  3. Instalowanie 32-bitowego klienta Oracle na serwerze Windows, na którym już działa 64-bitowy serwer bazy danych Oracle

  4. Najlepszy wzorzec projektowy do zamykania połączenia z bazą danych w przypadku wystąpienia wyjątku

  5. Oracle jako obejście tabel mutacji