Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Anda mencocokkan jumlah huruf genap atau angka ganjil menggunakan regexp untuk mysql

Jumlah A yang genap dapat dinyatakan sebagai (AA)+ (satu atau beberapa contoh AA; jadi itu akan cocok dengan AA, AAAA, AAAAAA...). Jumlah G yang ganjil dapat dinyatakan sebagai G(GG)* (satu G diikuti oleh nol atau lebih contoh GG , jadi itu akan cocok dengan G, GGG, GGGGG...).

Gabungkan itu dan Anda mendapatkan:

/(AA)+G(GG)*TC/

Namun, karena mesin regex akan mencoba mencocokkan sebanyak mungkin, ekspresi ini sebenarnya akan cocok dengan substring AAAGGGTC (mis. AAGGGTC )! Untuk mencegahnya, Anda dapat menggunakan tampilan negatif di belakang untuk memastikan bahwa karakter sebelum A pertama bukan A . yang lain :

/(?<!A)(AA)+G(GG)*TC/

...kecuali MySQL tidak mendukung lookarounds di regex mereka.

Apa yang dapat Anda lakukan adalah menentukan bahwa pola dimulai dari awal string (berlabuh oleh ^ ), atau didahului oleh karakter yang bukan A:

/(^|[^A])(AA)+G(GG)*TC/

Namun perhatikan bahwa dengan pola ini, karakter tambahan akan diambil jika pola tidak ditemukan di awal string, jadi Anda harus memotong karakter pertama jika bukan A.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menemukan min dalam kolom di mana dua kolom lainnya adalah nol

  2. Periksa baris yang sama dalam loop sementara dan letakkan di tabel terpisah

  3. Tidak dapat memuat rakitan mysql.web

  4. Tidak dapat mengeluarkan pernyataan manipulasi data dengan executeQuery()

  5. Mengapa find_in_set berfungsi tetapi klausa IN