Diese Frage baut auf einer früheren Frage auf, die ich bei gis.stackexchange gestellt habe: Wie kann man Attributdaten einfach mit regulären Ausdrücken bearbeiten?
Vielleicht kann mich jemand in die richtige Richtung weisen?
Ich habe ein Vektor-Shapefile mit Konturlinien. In der Attributtabelle habe ich bereits ein Feld namens FEET, das aus ganzzahligen Daten mit Höhenwerten besteht, in ein Zeichenfolgenfeld namens Label konvertiert. Zusätzlich habe ich erfolgreich ein 'an das Ende der Zeichenfolge angehängt, damit die Daten, wenn sie beschriftet sind, als Fuß gelesen werden.
Als nächstes versuche ich, nur dann ein Komma zwischen die ersten beiden Werte der Zeichenfolge einzufügen, wenn die Zeichenfolgenlänge größer als 4 ist, oder damit ein Komma nur zwischen den Tausend- und Hunderterstellen im Feld Beschriftung angezeigt wird. Die Länge muss größer als 4 sein, weil ich auch die '
Mein bisheriger Code lautet:
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
Die Funktion regexp_replace scheint jedoch die Gruppenvariablen $ 1 $ 2 im 3. Parameter der Funktion nicht zu akzeptieren.
Ich habe mir http://docs.python.org/2/library/re.html angesehen, da der Regex des Feldrechners nach meinem Verständnis auf der Verwendung von Regex durch Python basiert, dies aber nicht herausfinden konnte. Vielleicht ist das, was ich versuche, mit dieser Funktion im Feldrechner in QGIS 1.8 unter Mac OSX noch nicht möglich. Oder eher ist meine Syntax falsch, da ich ein unerfahrener Programmierer bin und für reguläre Ausdrücke etwas neu bin.