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

Batas kata MySQL REGEXP [[:<:]] [[:>:]] dan tanda kutip ganda

Izinkan saya mengutip dokumentasi pertama:

Dari dokumentasi kami dapat melihat alasan di balik masalah Anda dan itu bukan disebabkan oleh pelarian apa pun. Masalahnya adalah Anda mencoba mencocokkan batas kata [[:<:]] tepat di awal string yang tidak akan berfungsi karena batas kata seperti yang Anda lihat dari dokumentasi memisahkan karakter kata dari karakter non-kata, tetapi dalam kasus Anda karakter pertama adalah " yang bukan karakter kata sehingga tidak ada batas kata, hal yang sama berlaku untuk " terakhir dan [[:>:]] .

Agar ini berfungsi, Anda perlu sedikit mengubah ekspresi Anda menjadi yang ini:

"[[:<:]]word[[:>:]]"
 ^^^^^^^    ^^^^^^^

Perhatikan bagaimana batas kata memisahkan karakter bukan kata " dari karakter kata w di awal dan " dari d di akhir string.

EDIT: Jika Anda selalu ingin menggunakan batas kata di awal dan akhir string tanpa mengetahui apakah akan ada batas yang sebenarnya, Anda dapat menggunakan ekspresi berikut:

([[:<:]]|^)"word"([[:>:]]|$)

Ini akan cocok dengan batas kata di awal atau di awal string ^ dan hal yang sama untuk akhir batas kata atau akhir string. Saya sangat menyarankan Anda untuk mempelajari data yang Anda coba cocokkan dan mencari pola umum dan jangan gunakan ekspresi reguler jika itu bukan alat yang tepat untuk pekerjaan itu.

Demo SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menangani kueri tumpang tindih poligon MySQL?

  2. Dapatkan catatan dengan <apa pun> tertinggi/terkecil . per grup

  3. MySQL hanya mengembalikan satu baris

  4. MySQL membuang ke file teks CSV dengan nama kolom di atas?

  5. Fungsi yang ditentukan pengguna MySQL