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

Oracle REGEXP_LIKE e limiti di parole

Credo che tu voglia provare

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

perché il \b non appare in questo elenco:Estensioni influenzate da Perl nelle espressioni regolari Oracle

Il \s assicura che il test inizi e termini in uno spazio bianco. Questo non è sufficiente, tuttavia, poiché la stringa test potrebbe anche apparire all'inizio o alla fine della stringa da abbinare. Pertanto, utilizzo l'alternativa (indicato dal | ) ^ per l'inizio della stringa e $ per la fine della stringa.

Aggiornamento (dopo 3 anni e oltre)... A quanto pare, oggi avevo bisogno di questa funzionalità e mi sembra che un'espressione regolare ancora migliore sia (^|\s|\W)test($|\s|\W) (Il carattere speciale \b dell'espressione regolare mancante in Oracle).