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

Làm thế nào để thay thế lookahead trong regex?

Có hai cách tiếp cận. Một là soạn một biểu thức duy nhất xử lý tất cả các lựa chọn thay thế có thể có:

^[a-zA-Z][0-9][a-zA-Z0-9-,._;:]{6,}$
  |
^[a-zA-Z][a-zA-Z0-9-,._;:][0-9][a-zA-Z0-9-,._;:]{5,}$
  |
^[a-zA-Z][a-zA-Z0-9-,._;:]{2}[0-9][a-zA-Z0-9-,._;:]{4,}$

v.v ... Đây là một cơn ác mộng tổ hợp, nhưng nó sẽ hoạt động.

Một cách tiếp cận đơn giản hơn nhiều là xác thực cùng một chuỗi hai lần bằng cách sử dụng hai biểu thức:

^[a-zA-Z0-9-,._;:]{8,}$          # check length and permitted characters

[a-zA-Z].*[0-9]|[0-9].*[a-zA-Z]  # check required characters

CHỈNH SỬA:@briandfoy chỉ ra một cách chính xác rằng sẽ hiệu quả hơn nếu tìm kiếm từng ký tự bắt buộc riêng biệt:

[a-zA-Z]                         # check for required alpha

[0-9]                            # check for required digit


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hành vi của Oracle rownum với chức năng mod

  2. tìm kiếm cơ sở dữ liệu oracle bằng php

  3. làm thế nào để nối nhiều hơn hai cột trong nhà phát triển plsql?

  4. tìm các số còn thiếu từ chuỗi sau khi nhận được chuỗi từ một chuỗi?

  5. So sánh ngày và giờ Sql từ bảng kép