Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle regex - không bắt đầu bằng và không kết thúc bằng

Việc kiểm tra sự không khớp như thế này có thể trở nên phức tạp, vì vậy tôi khuyên bạn nên thử nghiệm cho một kết quả trùng khớp và phủ định kết quả.

Không bắt đầu bằng abc :

WHERE NOT REGEXP_LIKE(myString, '^abc')

Không kết thúc bằng abc :

WHERE NOT REGEXP_LIKE(myString, 'abc$')

Về lý do tại sao nó không hoạt động, như @DavidKnipe đã nói trong câu trả lời của mình:đó là vì bạn đang sử dụng các lớp nhân vật. Regex ^[^(abc)] phân tích cú pháp như thế này:

  • ^ đầu tiên nói "neo vào đầu chuỗi"
  • [^(abc)] là một lớp ký tự có nội dung "khớp với bất kỳ đơn lẻ nào miễn là nó không phải là ( hoặc a hoặc b hoặc c hoặc ) ".


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đầu ra ODP.NET Tham số chuỗi không trả về giá trị

  2. Lỗi 404 Không tìm thấy với EM 12c

  3. Khắc phục "Không thể mở ứng dụng" SQLDeveloper.app "."

  4. SQL 'AND' hoặc 'OR' đứng trước?

  5. Hàm DBTIMEZONE trong Oracle