Garis miring terbalik diperlakukan sebagai meta-karakter oleh Django dan ditafsirkan di dalam tanda kutip ganda. Jadi satu lapisan E'\\s+')
akan dilucuti sebelum string tiba di server PostgreSQL, yang akan melihat E'\s+')
. String escape akan menghasilkan 's+'
yang pada gilirannya akan membuat regexp_split_to_table()
pisahkan string Anda pada sejumlah s
alih-alih ruang non-cetak, yang merupakan singkatan dari kelas karakter \s
singkatan dari ekspresi reguler.
Gandakan garis miring terbalik Anda dalam string untuk mendapatkan apa yang Anda inginkan:E'\\\\s+')
:
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
Sebagai alternatif, untuk menghindari masalah dengan arti khusus dari garis miring terbalik \
, Anda dapat menggunakan [[:space:]]
untuk menunjukkan kelas karakter yang sama:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Detail dalam bab " Pencocokan Pola" di manual .