Omvendt skråstreg behandles som meta-karakter af Django og fortolkes inden for dobbelte anførselstegn. Så ét lag E'\\s+')
bliver strippet, før strengen ankommer til PostgreSQL-serveren, som vil se E'\s+')
. Escape-strengen vil resultere i 's+'
hvilket igen vil lave regexp_split_to_table()
opdel dine strenge ved et vilkårligt antal s
i stedet for ikke-udskrivende plads, som tegnklassen stenografi \s
står for i regulære udtryk.
Fordoble dine omvendte skråstreger i strengen for at få, hvad du havde til hensigt:E'\\\\s+')
:
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
Som et alternativ, for at undgå problemer med den særlige betydning af omvendt skråstreg \
, kan du bruge [[:space:]]
for at angive den samme karakterklasse:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Detaljer i kapitlet " Pattern Matching" i manualen .