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 .