PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Django. PostgreSQL. regexp_split_to_table nie działa

Ukośnik odwrotny jest traktowany przez Django jako metaznak i jest interpretowany wewnątrz podwójnych cudzysłowów. Tak więc jedna warstwa E'\\s+') zostaje usunięty, zanim ciąg dotrze do serwera PostgreSQL, który zobaczy E'\s+') . Łańcuch ucieczki da w wyniku 's+' co z kolei spowoduje, że regexp_split_to_table() podziel swoje ciągi na dowolną liczbę s zamiast przestrzeni niedrukowalnej, która jest skrótem klasy znaku \s oznacza w wyrażeniach regularnych.

Podwój swoje odwrotne ukośniki w ciągu, aby uzyskać to, co zamierzałeś:E'\\\\s+') :

"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"

Alternatywnie, aby uniknąć problemów ze specjalnym znaczeniem odwrotnego ukośnika \ , możesz użyć [[:space:]] do oznaczenia tej samej klasy znaków:

"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"

Szczegóły w rozdziale " Dopasowywanie wzorców” w instrukcji .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd psql do przywracania kopii zapasowej pgsl na cmd

  2. Jak wyliczyć grupy partycji w mojej tabeli Postgres za pomocą funkcji okna?

  3. Nadaj uprawnienia wszystkim użytkownikom, obecnym i przyszłym

  4. Mountain Lion Postgres nie mógł się połączyć

  5. AKTUALIZACJA .. LIMIT 1 za pomocą SqlAlchemy i PostgreSQL