Questa domanda si basa su una domanda precedente che ho riscontrato su gis.stackexchange: come modificare facilmente i dati degli attributi usando le espressioni regolari?
Forse qualcuno può indicarmi la giusta direzione?
Ho un file di forma vettoriale di linee di contorno. Nella tabella degli attributi ho già convertito un campo chiamato FEET costituito da dati interi contenenti valori di elevazione in un campo stringa chiamato Etichetta. Inoltre ho aggiunto con successo un 'alla fine della stringa in modo che quando i dati vengono etichettati verranno letti come piedi.
La prossima cosa che sto tentando di fare è inserire una virgola tra i primi due valori della stringa solo se la lunghezza della stringa è maggiore di 4, o così una virgola apparirà solo tra le migliaia e le centinaia cifre nel campo Etichetta. La lunghezza deve essere maggiore di 4 perché sto anche contando il '
Il mio codice finora è:
case when length( "Label") >4 then regexp_replace( "Label", '^([0-9])+([0-9]{3}\')$','$1 , $2') else "Label" end
tuttavia la funzione regexp_replace non sembra accettare le variabili di gruppo $ 1 $ 2 nel 3o parametro della funzione.
Ho esaminato http://docs.python.org/2/library/re.html poiché il regex di calcolatrice di campo proviene da ciò che capisco basato sull'uso di regex da parte di python ma non sono stato in grado di capirlo. Forse quello che sto tentando di fare non è ancora possibile con questa funzione nel calcolatore di campo in QGIS 1.8 su mac OSX. O più probabilmente la mia sintassi è sbagliata perché sono un programmatore alle prime armi e in qualche modo nuovo alle espressioni regolari.