Обратната наклонена черта се третира като метасимвол от Django и се интерпретира в двойни кавички. Така че един слой от E'\\s+')
се премахва, преди низът да пристигне на PostgreSQL сървъра, който ще види E'\s+')
. Екраниращият низ ще доведе до 's+'
което от своя страна ще направи regexp_split_to_table()
разделяйте своите низове на произволен брой s
вместо непечатаем интервал, който символният клас е съкратен \s
означава в регулярни изрази.
Удвоете обратните наклонени черти в низа, за да получите това, което сте възнамерявали:E'\\\\s+')
:
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
Като алтернатива, за да избегнете проблеми със специалното значение на обратната наклонена черта \
, можете да използвате [[:space:]]
за обозначаване на същия клас знаци:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Подробности в главата " Pattern Matching" в ръководството .