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]