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

Nhóm nắm bắt biểu thức chính quy PostgreSQL được chọn

Nếu bạn đang cố gắng nắm bắt đối sánh regex là kết quả của biểu thức, thì substring sẽ thực hiện thủ thuật:

select substring ('I have a dog', 'd[aeiou]g')

Sẽ trả về bất kỳ kết quả phù hợp nào, trong trường hợp này là "dog".

Tôi nghĩ rằng liên kết còn thiếu của những gì bạn đang thử ở trên là bạn cần đặt biểu thức bạn muốn nắm bắt trong dấu ngoặc đơn. regexp_matches sẽ hoạt động trong trường hợp này (nếu bạn bao gồm dấu ngoặc đơn xung quanh biểu thức bạn muốn nắm bắt), nhưng sẽ trả về một mảng văn bản với mỗi kết quả khớp. Nếu nó là một kết quả trùng khớp, thì substring khá tiện lợi.

Vì vậy, quay lại ví dụ của bạn, nếu bạn đang cố trả lại stuff nếu và chỉ khi nó ở đầu cột:

select substring (column, '^(stuff)')

hoặc

select (regexp_matches (column, '^(stuff)'))[1]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi PG không thể kết nối với máy chủ:Kết nối bị từ chối Máy chủ đang chạy trên cổng 5432?

  2. Postgresql:Truy vấn chậm hơn 10 lần trong một ứng dụng khách khác

  3. hàm trả về nhiều cột dưới dạng một cột duy nhất thay vì nhiều cột

  4. Làm cách nào tôi có thể tạo ràng buộc để kiểm tra xem email có hợp lệ trong postgres hay không?

  5. Rails:Không có nhóm kết nối cho ActiveRecord ::Base