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

Wyrażenie regularne Oracle - nie zaczyna się i nie kończy się na

Testowanie pod kątem niedopasowania może być skomplikowane, więc polecam testowanie pod kątem dopasowania i zanegowanie wyniku.

Nie zaczyna się od abc :

WHERE NOT REGEXP_LIKE(myString, '^abc')

Nie kończy się na abc :

WHERE NOT REGEXP_LIKE(myString, 'abc$')

Dlaczego to nie działa, jak mówi @DavidKnipe w swojej odpowiedzi:to dlatego, że używasz klas postaci. Wyrażenie regularne ^[^(abc)] analizuje w ten sposób:

  • Pierwszy ^ mówi „zakotwicz na początku ciągu”
  • [^(abc)] to klasa postaci, która mówi „dopasuj dowolne pojedyncze znak, o ile nie jest to ( lub a lub b lub c lub ) ".


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 przykłady anonimowych bloków PL/SQL

  2. użycie funkcji rownum z> zaloguj się w oracle

  3. Podłączanie SQL Server do Oracle

  4. SQLPlus Błąd AUTO_INCREMENT

  5. zapytanie Oracle do porównania wszystkich wierszy o tym samym identyfikatorze w tabeli