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

Cú pháp postgresql regexp_matches không hoạt động như mong đợi

regexp_matches(string text, pattern text [, flags text]) hàm trả về các giá trị đã chụp:

Bạn có thể sửa biểu thức bằng cách sử dụng các nhóm không nắm bắt:

SELECT unnest(regexp_matches('4-0001-1234 4.0001.12344  4-0-0-0-1-1234', '4(?:[\s/.-]*0){3}(?:[\s/.-]*[12])(?:[\s/.-]*\d){4}', 'g'));

Xem bản trình diễn trực tuyến .

BTW, bạn không cần phải thoát - khi nó nằm ở đầu / cuối của biểu thức dấu ngoặc và không cần phải thoát / cũng không phải . ở đó. Tôi cũng khuyên bạn nên xóa {1} dưới dạng a =a{1} trong bất kỳ regex nào hỗ trợ các bộ định lượng giới hạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, trạng thái SQL:42601

  2. ScalikeJDBC:Nhóm kết nối chưa được khởi tạo. (Tên:'mặc định)

  3. Ngủ đông. PSQLException:giá trị không hợp lệ cho kiểu int:admin

  4. Django cache.set () gây ra lỗi khóa trùng lặp

  5. [Laravel]:SQLSTATE [3F000]:Tên giản đồ không hợp lệ