Jika Anda mencoba menangkap kecocokan ekspresi reguler yang dihasilkan dari ekspresi, maka substring
akan melakukan triknya:
select substring ('I have a dog', 'd[aeiou]g')
Akan mengembalikan kecocokan apa pun, dalam hal ini "anjing."
Saya pikir tautan yang hilang dari apa yang Anda coba di atas adalah Anda harus meletakkan ekspresi yang ingin Anda tangkap dalam tanda kurung. regexp_matches
akan berfungsi dalam kasus ini (apakah Anda menyertakan tanda kurung di sekitar ekspresi yang ingin Anda tangkap), tetapi akan mengembalikan larik teks dengan setiap kecocokan. Jika cocok, substring
agak nyaman.
Jadi, putar kembali ke contoh Anda, jika Anda mencoba mengembalikan stuff
jika dan hanya jika berada di awal kolom:
select substring (column, '^(stuff)')
atau
select (regexp_matches (column, '^(stuff)'))[1]