Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mengganti lookahead di regex?

Ada dua pendekatan. Salah satunya adalah membuat ekspresi tunggal yang menangani semua kemungkinan alternatif:

^[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,}$

dll. Ini adalah mimpi buruk kombinatorik, tetapi akan berhasil.

Pendekatan yang lebih sederhana adalah memvalidasi string yang sama dua kali menggunakan dua ekspresi:

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

dan

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

EDIT:@briandfoy dengan benar menunjukkan bahwa akan lebih efisien untuk mencari setiap karakter yang diperlukan secara terpisah:

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

dan

[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. Pemberitahuan Perubahan Database JPA Eclipselink tidak membatalkan entri cache

  2. Perbarui beberapa baris menggunakan CASE WHEN - ORACLE

  3. string literal terlalu panjang - cara menetapkan data xml panjang ke tipe data gumpalan di Oracle 11g r2

  4. Beberapa Konfigurasi Database untuk Spring Data JPA 2.0.9 Rilis

  5. BEGIN - AKHIR transaksi blok atom di PL/SQL