PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa mencocokkan dua kata terakhir dalam sebuah kalimat di PostgreSQL?

Alih-alih menggunakan REGEXP_MATCHES yang mengembalikan serangkaian kecocokan, Anda mungkin lebih baik menggunakan SUBSTRING yang akan memberi Anda kecocokan sebagai TEXT secara langsung.

Menggunakan pola yang benar, seperti yang dibagikan @Abelisto, Anda dapat melakukan ini:

SELECT SUBSTRING('My name is Harry Potter' FROM '\w+\W+\w+$')

Ini mengembalikan Harry Potter sebagai lawan dari {"Harry Potter"}

Per komentar @Hambone, jika salah satu kata di akhir mengandung tanda baca, seperti apostrof, Anda sebaiknya mempertimbangkan untuk menggunakan pola berikut:

SELECT SUBSTRING('My name is Danny O''neal' FROM '\S+\s+\S+$')

Di atas dengan benar akan mengembalikan Danny O'neal bukan hanya O'neal



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sederhanakan kasus bersarang saat pernyataan

  2. Dapatkan Nama Bulan Pendek di PostgreSQL

  3. Bagaimana Anda menulis kueri case-insensitive untuk MySQL dan Postgres?

  4. Bagaimana cara mengubah bidang di dalam tipe data PostgreSQL JSON yang baru?

  5. Memesan hasil model bersarang yang penuh semangat di Node Sequelize