Nur Übereinstimmung mit ganzen Wörtern in der Django-Abfrage

8

Ich versuche eine Django-Abfrage zu schreiben, die nur ganze Wörter enthält. Basierend auf der Antwort hier habe ich versucht, etwas wie:

%Vor%

Aber das liefert nicht das erwartete Ergebnis. Ich habe es auch versucht

%Vor%

ohne Erfolg. Mein Endziel ist es, auch eine String-Variable übergeben zu können, etwa:

%Vor%

oder

%Vor%

Aber im Moment kann ich es nicht einmal mit einer rohen Saite arbeiten lassen. Ich benutze PostgreSQL.

    
GChorn 21.02.2013, 08:22
quelle

3 Antworten

11

Verwenden Sie " \ y " anstelle von " \ b ", wenn Sie PostgreSQL verwenden, weil Django Ihren regulären Ausdruck direkt an PostgreSQL weiterleitet RegEx muss damit kompatibel sein. Sie sollten in der Lage sein, sie von psql ohne Probleme auszuführen.

%Vor%

Siehe: Ссылка

    
Matt 21.02.2013, 08:53
quelle
1

Sie können etwas erhalten, indem Sie die Regex löschen und ein paar Django-Lookups verwenden

%Vor%

Siehe hier für Dokumente.

Ich merke, dass das nicht so elegant ist (aber für einfache Wartung, wenn Sie kein Fan von Regex sind).

    
Aidan Ewen 21.02.2013 08:26
quelle
0

Ich hatte das gleiche Problem beim Versuch, Wortgrenzen mit der Perl-kompatiblen Escape-Sequenz \ b abzugleichen. Meine Backend-Datenbank ist MySQL.

Ich habe das Problem mit dem Zeichenklassenausdruck [[: space:]] gelöst, z. B.

%Vor%     
Stefan Musarra 27.07.2013 19:43
quelle

Tags und Links