Omvänt snedstreck behandlas som meta-tecken av Django och tolkas inom dubbla citattecken. Så ett lager av E'\\s+') tas bort innan strängen kommer till PostgreSQL-servern, som kommer att se E'\s+') . Escape-strängen kommer att resultera i 's+' vilket i sin tur gör regexp_split_to_table() dela dina strängar vid valfritt antal s istället för icke-utskriftsutrymme, som teckenklassens förkortning \s står för i reguljära uttryck.
Dubbla dina omvända snedstreck i strängen för att få vad du tänkt dig:E'\\\\s+') :
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
Som ett alternativ, för att undvika problem med den speciella betydelsen av omvänt snedstreck \ , kan du använda [[:space:]] för att beteckna samma teckenklass:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Detaljer i kapitlet " Mönstermatchning" i manualen .